Keep type variable bounds on-line rather than computing them later.
Keep type variable bounds on-line rather than computing them later.

Switch from computing bounds on each type variable while we're solving
a constraint system to keeping these bounds on-line, so that we can
produce definitive bindings during simplification. At present, this is
actually a serious pessimization (25% slower on
swift.swift!). However, it should allow us to direct the constraint
solver better, e.g., by allowing us to solve all of the constraints
directly pertaining to a type variable when we have a guess for that
type variable.

If it doesn't pan out soon enough, I can easily revert it.




Swift SVN r3109

sdulal/swift,devincoughlin/swift,dreamsxin/swift,OscarSwanros/swift,bitjammer/swift,IngmarStein/swift,LeoShimonaka/swift,sschiau/swift,shahmishal/swift,sdulal/swift,huonw/swift,airspeedswift/swift,tjw/swift,allevato/swift,jmgc/swift,Jnosh/swift,gmilos/swift,emilstahl/swift,shajrawi/swift,jckarter/swift,natecook1000/swift,allevato/swift,austinzheng/swift,sdulal/swift,calebd/swift,russbishop/swift,danielmartin/swift,mightydeveloper/swift,mightydeveloper/swift,parkera/swift,xedin/swift,shahmishal/swift,adrfer/swift,emilstahl/swift,calebd/swift,therealbnut/swift,glessard/swift,harlanhaskins/swift,jmgc/swift,gmilos/swift,JaSpa/swift,kusl/swift,gregomni/swift,tardieu/swift,bitjammer/swift,danielmartin/swift,uasys/swift,uasys/swift,swiftix/swift.old,jtbandes/swift,modocache/swift,lorentey/swift,codestergit/swift,OscarSwanros/swift,kentya6/swift,therealbnut/swift,kusl/swift,jckarter/swift,jmgc/swift,OscarSwanros/swift,felix91gr/swift,hughbe/swift,MukeshKumarS/Swift,practicalswift/swift,apple/swift,tardieu/swift,tjw/swift,zisko/swift,arvedviehweger/swift,brentdax/swift,felix91gr/swift,gribozavr/swift,JaSpa/swift,khizkhiz/swift,harlanhaskins/swift,swiftix/swift,huonw/swift,deyton/swift,OscarSwanros/swift,shahmishal/swift,danielmartin/swift,alblue/swift,frootloops/swift,uasys/swift,kusl/swift,swiftix/swift,Ivacker/swift,slavapestov/swift,amraboelela/swift,zisko/swift,zisko/swift,ben-ng/swift,nathawes/swift,karwa/swift,devincoughlin/swift,allevato/swift,rudkx/swift,harlanhaskins/swift,codestergit/swift,SwiftAndroid/swift,rudkx/swift,kusl/swift,ben-ng/swift,jopamer/swift,therealbnut/swift,ahoppen/swift,harlanhaskins/swift,mightydeveloper/swift,swiftix/swift.old,ahoppen/swift,jopamer/swift,amraboelela/swift,jckarter/swift,LeoShimonaka/swift,MukeshKumarS/Swift,kperryua/swift,lorentey/swift,modocache/swift,codestergit/swift,JaSpa/swift,frootloops/swift,ahoppen/swift,lorentey/swift,KrishMunot/swift,codestergit/swift,uasys/swift,hughbe/swift,kentya6/swift,tardieu/swift,return/swift,frootloops/swift,swiftix/swift.old,manavgabhawala/swift,Ivacker/swift,amraboelela/swift,atrick/swift,jckarter/swift,stephentyrone/swift,IngmarStein/swift,shajrawi/swift,tkremenek/swift,ben-ng/swift,xedin/swift,MukeshKumarS/Swift,devincoughlin/swift,khizkhiz/swift,shajrawi/swift,apple/swift,Jnosh/swift,amraboelela/swift,hooman/swift,ben-ng/swift,swiftix/swift.old,sdulal/swift,shahmishal/swift,gribozavr/swift,russbishop/swift,parkera/swift,mightydeveloper/swift,tardieu/swift,cbrentharris/swift,ken0nek/swift,KrishMunot/swift,allevato/swift,modocache/swift,austinzheng/swift,arvedviehweger/swift,shajrawi/swift,hooman/swift,natecook1000/swift,dduan/swift,danielmartin/swift,kentya6/swift,jopamer/swift,kperryua/swift,slavapestov/swift,JGiola/swift,CodaFi/swift,nathawes/swift,shajrawi/swift,johnno1962d/swift,swiftix/swift,hooman/swift,practicalswift/swift,tardieu/swift,hughbe/swift,emilstahl/swift,hooman/swift,austinzheng/swift,milseman/swift,MukeshKumarS/Swift,parkera/swift,JaSpa/swift,CodaFi/swift,devincoughlin/swift,frootloops/swift,arvedviehweger/swift,xedin/swift,therealbnut/swift,sschiau/swift,milseman/swift,khizkhiz/swift,milseman/swift,uasys/swift,gribozavr/swift,johnno1962d/swift,slavapestov/swift,deyton/swift,glessard/swift,KrishMunot/swift,return/swift,ahoppen/swift,practicalswift/swift,IngmarStein/swift,stephentyrone/swift,uasys/swift,JGiola/swift,manavgabhawala/swift,SwiftAndroid/swift,slavapestov/swift,kentya6/swift,manavgabhawala/swift,natecook1000/swift,roambotics/swift,hooman/swift,gregomni/swift,jmgc/swift,alblue/swift,swiftix/swift.old,emilstahl/swift,gribozavr/swift,sschiau/swift,ahoppen/swift,shajrawi/swift,karwa/swift,codestergit/swift,swiftix/swift.old,LeoShimonaka/swift,CodaFi/swift,emilstahl/swift,stephentyrone/swift,therealbnut/swift,LeoShimonaka/swift,ken0nek/swift,CodaFi/swift,bitjammer/swift,milseman/swift,huonw/swift,JaSpa/swift,ben-ng/swift,arvedviehweger/swift,LeoShimonaka/swift,cbrentharris/swift,natecook1000/swift,xwu/swift,KrishMunot/swift,OscarSwanros/swift,tkremenek/swift,mightydeveloper/swift,dduan/swift,atrick/swift,tinysun212/swift-windows,roambotics/swift,lorentey/swift,lorentey/swift,slavapestov/swift,harlanhaskins/swift,return/swift,tinysun212/swift-windows,milseman/swift,JGiola/swift,jtbandes/swift,parkera/swift,gribozavr/swift,atrick/swift,parkera/swift,alblue/swift,amraboelela/swift,mightydeveloper/swift,huonw/swift,danielmartin/swift,codestergit/swift,xwu/swift,hughbe/swift,atrick/swift,kperryua/swift,lorentey/swift,Ivacker/swift,emilstahl/swift,felix91gr/swift,modocache/swift,cbrentharris/swift,huonw/swift,apple/swift,aschwaighofer/swift,gribozavr/swift,roambotics/swift,airspeedswift/swift,LeoShimonaka/swift,SwiftAndroid/swift,aschwaighofer/swift,dduan/swift,stephentyrone/swift,jtbandes/swift,gottesmm/swift,return/swift,IngmarStein/swift,kstaring/swift,rudkx/swift,russbishop/swift,dduan/swift,Jnosh/swift,karwa/swift,SwiftAndroid/swift,johnno1962d/swift,gottesmm/swift,karwa/swift,xedin/swift,kstaring/swift,stephentyrone/swift,ben-ng/swift,nathawes/swift,dduan/swift,tjw/swift,hooman/swift,khizkhiz/swift,OscarSwanros/swift,brentdax/swift,parkera/swift,deyton/swift,tjw/swift,ken0nek/swift,uasys/swift,huonw/swift,hughbe/swift,parkera/swift,stephentyrone/swift,aschwaighofer/swift,aschwaighofer/swift,austinzheng/swift,shahmishal/swift,russbishop/swift,aschwaighofer/swift,glessard/swift,russbishop/swift,gribozavr/swift,apple/swift,deyton/swift,jtbandes/swift,sschiau/swift,tardieu/swift,Ivacker/swift,dduan/swift,parkera/swift,tkremenek/swift,sschiau/swift,calebd/swift,zisko/swift,lorentey/swift,aschwaighofer/swift,return/swift,brentdax/swift,bitjammer/swift,johnno1962d/swift,alblue/swift,tjw/swift,KrishMunot/swift,xwu/swift,apple/swift,calebd/swift,MukeshKumarS/Swift,jckarter/swift,felix91gr/swift,kusl/swift,alblue/swift,brentdax/swift,kstaring/swift,JGiola/swift,swiftix/swift.old,djwbrown/swift,glessard/swift,karwa/swift,Ivacker/swift,kperryua/swift,jmgc/swift,ben-ng/swift,zisko/swift,deyton/swift,arvedviehweger/swift,roambotics/swift,johnno1962d/swift,devincoughlin/swift,LeoShimonaka/swift,gmilos/swift,adrfer/swift,harlanhaskins/swift,gottesmm/swift,xedin/swift,allevato/swift,benlangmuir/swift,danielmartin/swift,airspeedswift/swift,cbrentharris/swift,kstaring/swift,rudkx/swift,djwbrown/swift,felix91gr/swift,gregomni/swift,sschiau/swift,bitjammer/swift,natecook1000/swift,kstaring/swift,SwiftAndroid/swift,Jnosh/swift,JaSpa/swift,calebd/swift,therealbnut/swift,gottesmm/swift,deyton/swift,austinzheng/swift,natecook1000/swift,tkremenek/swift,ahoppen/swift,adrfer/swift,kstaring/swift,MukeshKumarS/Swift,devincoughlin/swift,amraboelela/swift,johnno1962d/swift,lorentey/swift,gmilos/swift,gregomni/swift,ken0nek/swift,gregomni/swift,glessard/swift,xwu/swift,apple/swift,kstaring/swift,return/swift,CodaFi/swift,IngmarStein/swift,swiftix/swift,jtbandes/swift,shahmishal/swift,IngmarStein/swift,sdulal/swift,kperryua/swift,kentya6/swift,gmilos/swift,roambotics/swift,JGiola/swift,kentya6/swift,adrfer/swift,kentya6/swift,xwu/swift,calebd/swift,cbrentharris/swift,IngmarStein/swift,jmgc/swift,Jnosh/swift,CodaFi/swift,JaSpa/swift,amraboelela/swift,benlangmuir/swift,djwbrown/swift,arvedviehweger/swift,swiftix/swift,jopamer/swift,gribozavr/swift,ken0nek/swift,Ivacker/swift,modocache/swift,SwiftAndroid/swift,benlangmuir/swift,russbishop/swift,kusl/swift,milseman/swift,austinzheng/swift,return/swift,kusl/swift,felix91gr/swift,felix91gr/swift,sschiau/swift,harlanhaskins/swift,manavgabhawala/swift,devincoughlin/swift,bitjammer/swift,djwbrown/swift,xwu/swift,modocache/swift,gmilos/swift,tkremenek/swift,Ivacker/swift,airspeedswift/swift,adrfer/swift,brentdax/swift,khizkhiz/swift,KrishMunot/swift,gottesmm/swift,jtbandes/swift,kusl/swift,OscarSwanros/swift,natecook1000/swift,roambotics/swift,alblue/swift,arvedviehweger/swift,aschwaighofer/swift,jckarter/swift,danielmartin/swift,swiftix/swift,allevato/swift,swiftix/swift.old,mightydeveloper/swift,cbrentharris/swift,karwa/swift,airspeedswift/swift,nathawes/swift,rudkx/swift,bitjammer/swift,shajrawi/swift,karwa/swift,hughbe/swift,frootloops/swift,adrfer/swift,karwa/swift,zisko/swift,manavgabhawala/swift,russbishop/swift,airspeedswift/swift,sdulal/swift,manavgabhawala/swift,xedin/swift,tjw/swift,swiftix/swift,cbrentharris/swift,JGiola/swift,milseman/swift,adrfer/swift,tkremenek/swift,kentya6/swift,MukeshKumarS/Swift,therealbnut/swift,benlangmuir/swift,tkremenek/swift,mightydeveloper/swift,stephentyrone/swift,djwbrown/swift,slavapestov/swift,jmgc/swift,calebd/swift,dduan/swift,Jnosh/swift,brentdax/swift,frootloops/swift,xwu/swift,johnno1962d/swift,jckarter/swift,Ivacker/swift,tjw/swift,khizkhiz/swift,kperryua/swift,austinzheng/swift,glessard/swift,sdulal/swift,KrishMunot/swift,khizkhiz/swift,CodaFi/swift,modocache/swift,benlangmuir/swift,nathawes/swift,atrick/swift,tinysun212/swift-windows,tinysun212/swift-windows,shahmishal/swift,ken0nek/swift,tinysun212/swift-windows,LeoShimonaka/swift,gottesmm/swift,slavapestov/swift,sdulal/swift,practicalswift/swift,Jnosh/swift,gottesmm/swift,ken0nek/swift,xedin/swift,hooman/swift,benlangmuir/swift,codestergit/swift,jopamer/swift,manavgabhawala/swift,shajrawi/swift,devincoughlin/swift,shahmishal/swift,tinysun212/swift-windows,jopamer/swift,kperryua/swift,huonw/swift,emilstahl/swift,dreamsxin/swift,alblue/swift,atrick/swift,tardieu/swift,gmilos/swift,SwiftAndroid/swift,airspeedswift/swift,jtbandes/swift,tinysun212/swift-windows,rudkx/swift,practicalswift/swift,practicalswift/swift,brentdax/swift,hughbe/swift,nathawes/swift,sschiau/swift,zisko/swift,nathawes/swift,deyton/swift,xedin/swift,jopamer/swift,allevato/swift,frootloops/swift,practicalswift/swift,gregomni/swift,emilstahl/swift,djwbrown/swift,cbrentharris/swift,practicalswift/swift,djwbrown/swift