IRGen: Class existentials are single-unknown-retainable if they need no witness tables.
IRGen: Class existentials are single-unknown-retainable if they need no witness tables.

This would enable the mask-and-retain optimization for the 'Owner' enum of ContiguousString, except that that causes heap corruption issues as noted in r12465.

Swift SVN r12466

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