[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