[PATCH] D54175: [PGO] context sensitive PGO
Rong Xu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 14 10:38:33 PST 2019
xur updated this revision to Diff 181595.
xur added a comment.
Herald added a subscriber: mgorny.
Fixed the issue with lld (where lld is not happy with the COMDAT variables created
after LTO/ThinLTO)
Add the support of clang bootstrap for CSPGO.
Update the patch.
Tested this patch with google internal benchmarks (mostly for distributed ThinLTO).
Tested this patch with clang bootstrap for CSPGO.
(1) plain CSPGO (new and legacy pass manager).
(2) Thinlto CSPGO with plugin-opt to lld (new-experimental and legacy pass manager).
(3) Fulllto CSPGO with plugin-opt to lld (new-experimental and legacy pass manager).
CSPGO improves 1%-4% (wall time of `ninja clang`) upon regular PGO in clang bootstrap.
Thinlto and Fulllto is ~4% (wall time of `ninja clang`) in the new-experimental pass manager.
Compiling of individual files can improve up to 20%.
I'm working to add tests to this patch
Clang patch:
https://reviews.llvm.org/D54176
Compiler-rt patch:
https://reviews.llvm.org/D54177
lld patch:
https://reviews.llvm.org/D56675
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D54175/new/
https://reviews.llvm.org/D54175
Files:
CMakeLists.txt
cmake/modules/HandleLLVMOptions.cmake
include/llvm/Analysis/ProfileSummaryInfo.h
include/llvm/IR/Module.h
include/llvm/IR/ProfileSummary.h
include/llvm/InitializePasses.h
include/llvm/LTO/Config.h
include/llvm/LinkAllPasses.h
include/llvm/Passes/PassBuilder.h
include/llvm/ProfileData/InstrProf.h
include/llvm/ProfileData/InstrProfData.inc
include/llvm/ProfileData/InstrProfReader.h
include/llvm/ProfileData/InstrProfWriter.h
include/llvm/Transforms/IPO/PassManagerBuilder.h
include/llvm/Transforms/Instrumentation.h
include/llvm/Transforms/Instrumentation/InstrProfiling.h
include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
lib/Analysis/ProfileSummaryInfo.cpp
lib/IR/Module.cpp
lib/IR/ProfileSummary.cpp
lib/LTO/LTOBackend.cpp
lib/Passes/PassBuilder.cpp
lib/ProfileData/InstrProf.cpp
lib/ProfileData/InstrProfReader.cpp
lib/ProfileData/InstrProfWriter.cpp
lib/Transforms/IPO/PassManagerBuilder.cpp
lib/Transforms/IPO/SampleProfile.cpp
lib/Transforms/Instrumentation/InstrProfiling.cpp
lib/Transforms/Instrumentation/PGOInstrumentation.cpp
tools/gold/gold-plugin.cpp
tools/llvm-profdata/llvm-profdata.cpp
tools/opt/NewPMDriver.cpp
unittests/ProfileData/InstrProfTest.cpp
unittests/ProfileData/SampleProfTest.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54175.181595.patch
Type: text/x-patch
Size: 86663 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190114/c24d24d8/attachment.bin>
More information about the llvm-commits
mailing list