mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
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
14 KiB
14 KiB