[PATCH] D85368: [llvm][CodeGen] Machine Function Splitter
Snehasish Kumar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 5 15:42:01 PDT 2020
snehasish created this revision.
snehasish added reviewers: davidxl, eli.friedman, tmsriram.
Herald added subscribers: llvm-commits, mgrang, mgorny.
Herald added a project: LLVM.
snehasish requested review of this revision.
We introduce a codegen optimization pass which splits functions into hot and cold
parts. This pass leverages the basic block sections feature recently
introduced in LLVM from the Propeller project. The pass targets
functions with profile coverage, identifies cold blocks and moves them
to a separate section. The linker groups all cold blocks across
functions together, decreasing fragmentation and improving icache and
itlb utilization.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D85368
Files:
llvm/include/llvm/CodeGen/BasicBlockSectionUtils.h
llvm/include/llvm/CodeGen/CommandFlags.h
llvm/include/llvm/CodeGen/MachineFunction.h
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/Target/TargetOptions.h
llvm/lib/CodeGen/BBSectionsPrepare.cpp
llvm/lib/CodeGen/CMakeLists.txt
llvm/lib/CodeGen/CommandFlags.cpp
llvm/lib/CodeGen/MachineFunctionSplitter.cpp
llvm/lib/CodeGen/TargetPassConfig.cpp
llvm/test/CodeGen/X86/machine-function-splitter.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85368.283424.patch
Type: text/x-patch
Size: 21150 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200805/0bf85f01/attachment.bin>
More information about the llvm-commits
mailing list