[PATCH] D140210: [IPSCCP] Enable specialization of functions.
Alexandros Lamprineas via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 16 05:22:49 PST 2022
labrinea created this revision.
labrinea added reviewers: chill, SjoerdMeijer, ChuanqiXu, fhahn.
Herald added subscribers: snehasish, ormris, wenlei, steven_wu, hiraditya.
Herald added a project: All.
labrinea requested review of this revision.
Herald added a project: LLVM.
This patch enables Function Specialization by default.
Compilation Time Overhead:
--------------------------
Measured the Instruction Count increase (Geomean) for CTMark from
the llvm-testsuite as in https://llvm-compile-time-tracker.com.
* {-O3, Non-LTO}: +0.136% Instruction Count
* {-O3, LTO}: +0.346% Instruction Count
Performance Uplift:
-------------------
Measured +9.121% score increase for 505.mcf_r from SPEC Int 2017
(Tested on Neoverse N1 with -O3 + LTO)
Correctness Testing:
--------------------
* Passes bootstrap Clang with ASAN + LTO + FuncSpec aggressive options:
{ MaxClonesThreshold=10,
SmallFunctionThreshold=10,
AvgLoopIterationCount=30,
SpecializeOnAddresses=true,
EnableSpecializationForLiteralConstant=true,
FuncSpecializationMaxIters=10 }
* Builds Chromium and passes its unittests with the above options + ThinLTO.
For more info please refer to
https://discourse.llvm.org/t/rfc-should-we-enable-function-specialization/61518
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D140210
Files:
llvm/lib/Transforms/IPO/SCCP.cpp
llvm/test/Other/new-pm-defaults.ll
llvm/test/Other/new-pm-lto-defaults.ll
llvm/test/Other/new-pm-thinlto-defaults.ll
llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D140210.483498.patch
Type: text/x-patch
Size: 8797 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221216/1df4c393/attachment.bin>
More information about the llvm-commits
mailing list