[PATCH] D36043: [WIP] Add interprocedural IR outliner pass.
River Riddle via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 28 21:39:37 PDT 2017
rriddle created this revision.
Herald added subscribers: fhahn, mgorny, mehdi_amini.
This add the inter-procedural IR outliner described in RFC: http://lists.llvm.org/pipermail/llvm-dev/2017-July/115666.html
The outliner works off of semantic equivalency between instructions. The pass currently runs on sequential instruction chains but the (benefit and verification)analysis, outline function creation, and congruency classification logic can be expanded to support outlining from control flow regions.
The pass supports:
- Opt remarks
- Using profile to avoid outlining from hot blocks.
- Parameterization/output creation.
Experimental performance: goo.gl/5k6wsP
https://reviews.llvm.org/D36043
Files:
include/llvm/InitializePasses.h
include/llvm/LinkAllPasses.h
include/llvm/Transforms/IPO.h
include/llvm/Transforms/IPO/CodeSizeOutliner.h
lib/Passes/PassBuilder.cpp
lib/Passes/PassRegistry.def
lib/Transforms/IPO/CMakeLists.txt
lib/Transforms/IPO/CodeSizeOutliner.cpp
lib/Transforms/IPO/IPO.cpp
lib/Transforms/IPO/PassManagerBuilder.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36043.108774.patch
Type: text/x-patch
Size: 77133 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170729/f29fac89/attachment.bin>
More information about the llvm-commits
mailing list