SILGenPattern: Support address-only unions.
SILGenPattern: Support address-only unions.

Switch on address-only unions using the destructive_switch_union_addr instruction. This is safe to do now thanks to r7812: The destructured value will now naturally be cleaned up instead of the invalidated union.

Swift SVN r7821

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