Do not allow inliner to work top-down unless we have new opportunities.
Do not allow inliner to work top-down unless we have new opportunities.

We should not repeatedly attempt to inline into the same function unless
we have produced new opportunities for inlining due to devirtualization
or generic specialization.

This was a silly goof from when I integrated devirtualization and
generic specialization into the inliner.

There is no reasonable test case for this. The radar has patches to the
stdlib and perf test suite that can be used to reproduce this, but
variants of these patches are already in our tree and do not exhibit the
same behavior.

This cuts the compile time of the SuperChars benchmark from 10 minutes
to 1.7 seconds when the patches in the radar are applied. The vast
majority of that improvement comes from not giving LLVM's
CorrelatedValuePropagation a 20k basic block
function (rdar://problem/20945561).

Unfortuantely it looks like BinarySearch, Dictionary, PrimeNum, and
Sim2DArray suffer as a result of this change. PrimeNum is the most
significant regression, running around 30% slower.

I'll open radars and if time permits we can attempt to recover some of
that time by tweaking the inliner.

Fixes rdar://problem/20878612.

Swift SVN r28562

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