Commits

Pete Cooper committed 83228761621
Sink retains down in the current BB if they cannot be sunk to a successor. We currently only sink retains to successor BBs. However, if a retain can't be moved to a successor, we may still want to move it as late in the current BB as possible. For example, we want retains after called to _swift_isUniquelyReferenced and not before it. Here are performance numbers for -O. Note that i'm about to commit improvements to enum_is_tag which fixes the regressions here. Ackermann``````,``````````1413.00```,`````````````````1566.00```,``````````153.00``,`````````````````-9.8% ArrayLiteral```,``````````834.00````,`````````````````859.00````,``````````25.00```,`````````````````-2.9% Ary````````````,``````````1110.00```,`````````````````1121.00```,``````````11.00```,`````````````````-1.0% Ary2```````````,``````````1092.00```,`````````````````1105.00```,``````````13.00```,`````````````````-1.2% Ary3```````````,``````````1164.00```,`````````````````1193.00```,``````````29.00```,`````````````````-2.4% DeltaBlue``````,``````````2195.00```,`````````````````2204.00```,``````````9.00````,`````````````````-0.4% Dictionary`````,``````````502.00````,`````````````````512.00````,``````````10.00```,`````````````````-2.0% Dictionary2````,``````````884.00````,`````````````````895.00````,``````````11.00```,`````````````````-1.2% Dictionary3````,``````````859.00````,`````````````````870.00````,``````````11.00```,`````````````````-1.3% EditDistance```,``````````1344.00```,`````````````````1344.00```,``````````0.00````,`````````````````0.0% Fibonacci``````,``````````1382.00```,`````````````````1309.00```,``````````73.00```,`````````````````5.6% ForLoops```````,``````````1318.00```,`````````````````1324.00```,``````````6.00````,`````````````````-0.5% Forest`````````,``````````757.00````,`````````````````775.00````,``````````18.00```,`````````````````-2.3% GlobalClass````,``````````1617.00```,`````````````````1620.00```,``````````3.00````,`````````````````-0.2% Hash```````````,``````````660.00````,`````````````````718.00````,``````````58.00```,`````````````````-8.1% HeapSort```````,``````````1256.00```,`````````````````1292.00```,``````````36.00```,`````````````````-2.8% Histogram``````,``````````313.00````,`````````````````296.00````,``````````17.00```,`````````````````5.7% InsertionSort``,``````````1223.00```,`````````````````1351.00```,``````````128.00``,`````````````````-9.5% Life```````````,``````````69.00`````,`````````````````70.00`````,``````````1.00````,`````````````````-1.4% LinkedList`````,``````````1516.00```,`````````````````1529.00```,``````````13.00```,`````````````````-0.9% MatMul`````````,``````````224.00````,`````````````````239.00````,``````````15.00```,`````````````````-6.3% Memset`````````,``````````43.00`````,`````````````````43.00`````,``````````0.00````,`````````````````0.0% MonteCarloE````,``````````905.00````,`````````````````900.00````,``````````5.00````,`````````````````0.6% MonteCarloPi```,``````````643.00````,`````````````````654.00````,``````````11.00```,`````````````````-1.7% NBody``````````,``````````42.00`````,`````````````````41.00`````,``````````1.00````,`````````````````2.4% NestedLoop`````,``````````931.00````,`````````````````876.00````,``````````55.00```,`````````````````6.3% NopDeinit``````,``````````1119.00```,`````````````````1117.00```,``````````2.00````,`````````````````0.2% Phonebook``````,``````````1424.00```,`````````````````1395.00```,``````````29.00```,`````````````````2.1% PrimeNum```````,``````````214.00````,`````````````````219.00````,``````````5.00````,`````````````````-2.3% Prims``````````,``````````1182.00```,`````````````````1198.00```,``````````16.00```,`````````````````-1.3% QuickSort``````,``````````1196.00```,`````````````````1166.00```,``````````30.00```,`````````````````2.6% R17315246``````,``````````798.00````,`````````````````798.00````,``````````0.00````,`````````````````0.0% RC4````````````,``````````25.00`````,`````````````````25.00`````,``````````0.00````,`````````````````0.0% RIPEMD`````````,``````````724.00````,`````````````````746.00````,``````````22.00```,`````````````````-2.9% Random`````````,``````````960.00````,`````````````````963.00````,``````````3.00````,`````````````````-0.3% Rectangles`````,``````````836.00````,`````````````````849.00````,``````````13.00```,`````````````````-1.5% Richards```````,``````````220.00````,`````````````````225.00````,``````````5.00````,`````````````````-2.2% SelectionSort``,``````````931.00````,`````````````````932.00````,``````````1.00````,`````````````````-0.1% SmallPT````````,``````````1014.00```,`````````````````1039.00```,``````````25.00```,`````````````````-2.4% StdlibSort`````,``````````1617.00```,`````````````````1602.00```,``````````15.00```,`````````````````0.9% StrCat`````````,``````````1061.00```,`````````````````1121.00```,``````````60.00```,`````````````````-5.4% StrSplitter````,``````````1607.00```,`````````````````1533.00```,``````````74.00```,`````````````````4.8% StrToInt```````,``````````616.00````,`````````````````612.00````,``````````4.00````,`````````````````0.7% StringBuilder``,``````````701.00````,`````````````````682.00````,``````````19.00```,`````````````````2.8% StringWalk`````,``````````1165.00```,`````````````````1182.00```,``````````17.00```,`````````````````-1.4% Totals`````````,``````````42392.00``,`````````````````42778.00``,``````````386.00``,`````````````````-0.9% TwoSum`````````,``````````581.00````,`````````````````564.00````,``````````17.00```,`````````````````3.0% Walsh``````````,``````````105.00````,`````````````````104.00````,``````````1.00````,`````````````````1.0% Swift SVN r21133