[PATCH] D12199: Add framework for iterative compilation to llvm
Zoran Jovanovic via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 30 09:27:52 PST 2015
zoran.jovanovic updated this revision to Diff 43792.
zoran.jovanovic added a comment.
This version introduces new algorithm for exploring decision trees.
As stated in the last patch, splitting one big decision tree into multiple ones for every function in compilation unit can improve results.
Furthermore, separate decision trees are needed for each optimization phase (interprocedural, precodegen and codegen).
The algorithm spends 1/3 of iterations on searching for the best combination of alternative decisions for trees of each phase for every function in parallel. We got some improvement in code size for 5% more test cases which adds up to roughly 25% of test cases where our algorithm achieved smaller code size than non-iterative version.
Those results show that implementing parallel explore enables deeper exploration of the decision tree for the same number of iterations.
Comments are welcome.
http://reviews.llvm.org/D12199
Files:
include/llvm/Analysis/ICDecisionTree.h
include/llvm/Analysis/ICFileUtils.h
include/llvm/Analysis/ICPass.h
include/llvm/Analysis/ICProxies.h
include/llvm/Analysis/ICSetCurrentFunc.h
include/llvm/Analysis/ICUtils.h
include/llvm/Analysis/IterativeCompilation.h
include/llvm/Analysis/Passes.h
include/llvm/InitializePasses.h
include/llvm/Transforms/IPO/InlinerPass.h
include/llvm/Transforms/Utils/LoopUtils.h
lib/Analysis/Analysis.cpp
lib/Analysis/CMakeLists.txt
lib/Analysis/ICDecisionTree.cpp
lib/Analysis/ICFileUtils.cpp
lib/Analysis/ICPass.cpp
lib/Analysis/ICProxies.cpp
lib/Analysis/ICUtils.cpp
lib/CodeGen/RegAllocGreedy.cpp
lib/Target/Mips/CMakeLists.txt
lib/Target/Mips/Mips.h
lib/Target/Mips/MipsFunctionFitness.cpp
lib/Target/Mips/MipsTargetMachine.cpp
lib/Transforms/IPO/InlineAlways.cpp
lib/Transforms/IPO/InlineSimple.cpp
lib/Transforms/IPO/Inliner.cpp
lib/Transforms/Scalar/LICM.cpp
unittests/Analysis/CMakeLists.txt
unittests/Analysis/ICDecisionTree.cpp
unittests/Analysis/ICParallel.cpp
unittests/Analysis/ICProxies.cpp
unittests/Analysis/ICUtils.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12199.43792.patch
Type: text/x-patch
Size: 128259 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151230/ae71cf3b/attachment-0001.bin>
More information about the llvm-commits
mailing list