[PATCH] D79747: [PowerPC] Implementation of Simple Outliner Module Pass

Kamau Bridgeman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 11 14:35:30 PDT 2020


kamaub created this revision.
kamaub added reviewers: lei, stefanp, nemanjai, kbarton, amyk, bsaleil, NeHuang, saghir.
Herald added subscribers: llvm-commits, shchenz, hiraditya, mgorny.
Herald added a project: LLVM.

The simple outliner module pass looks for functions that have an
early exit condition from their entry to a exit block that has
only one PHINode and a return. It then outlines the rest of the
funtion to a tail call once the exiting and entry block meet the
"Simple Criteria".

A simple entry: no calls or stores and all loads are either used
in the entry or returned in the exit block. Must have a
conditional branch with two successors were the simple exit is
one of them.

A simple exit: must have only one PHI and a ret instruction.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D79747

Files:
  llvm/lib/Target/PowerPC/CMakeLists.txt
  llvm/lib/Target/PowerPC/PPC.h
  llvm/lib/Target/PowerPC/PPCSimpleOutliner.cpp
  llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
  llvm/test/CodeGen/PowerPC/simple-outliner.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79747.263280.patch
Type: text/x-patch
Size: 23167 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200511/0ccb76ce/attachment.bin>


More information about the llvm-commits mailing list