Runtime: Make the invasive cache pointer in ForeignTypeMetadata atomic.
Runtime: Make the invasive cache pointer in ForeignTypeMetadata atomic.

Per review from Dmitri and Greg. We can do relaxed loads (if we miss the store, we'll lock the global hashtable and find the metadata that way), but we need a seq_cst barrier when we store.

Swift SVN r23101

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