Commits

Xin Tong committed f95d9b3c929
Change FSO heuristic. FSO functions that have high potential but does not have caller inside current module. The thunk can then be inlined into the module calling the function and the function would get the benefit of FSO. The heuristic for selecting such function is 1. Have no indirect caller. This would introduce a thunk. 2. Have potential to give better performance. i.e. function argument can be O2G. Regression TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP --- | --- | --- | --- | --- BenchLangCallingCFunction | 184 | 211 | +14.7% | **0.87x** Calculator | 55 | 59 | +7.3% | **0.93x** DeadArray | 687 | 741 | +7.9% | **0.93x** MonteCarloPi | 39275 | 41669 | +6.1% | **0.94x** Improvement TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP --- | --- | --- | --- | --- LuhnAlgoLazy | 2478 | 2327 | -6.1% | **1.06x** OpenClose | 54 | 51 | -5.6% | **1.06x** SortLettersInPlace | 1016 | 946 | -6.9% | **1.07x** ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 149993 | 139755 | -6.8% | **1.07x** Phonebook | 9666 | 8992 | -7.0% | **1.07x** ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 222713 | 206538 | -7.3% | **1.08x** LuhnAlgoEager | 2393 | 2226 | -7.0% | **1.08x** Dictionary | 1307 | 1196 | -8.5% | **1.09x** JSONHelperDeserialize | 3808 | 3492 | -8.3% | **1.09x** StdlibSort | 7310 | 4084 | -44.1% | **1.79x** I see 0.15% increase in code size for Benchmark_O. Thanks @gottesmm for suggesting this opportunity. rdar://25345056