diff options
author | Jeff Cohen <jeffc@jolt-lang.org> | 2005-01-08 17:21:40 +0000 |
---|---|---|
committer | Jeff Cohen <jeffc@jolt-lang.org> | 2005-01-08 17:21:40 +0000 |
commit | bf65268def058af3e1d35aba233d5f0fd5a80fce (patch) | |
tree | cf66144272a7f92e35ddc38263646c7f9e43560a | |
parent | ae0aacb8331e1227abea6601e531a10d0e65fdca (diff) | |
download | external_llvm-bf65268def058af3e1d35aba233d5f0fd5a80fce.zip external_llvm-bf65268def058af3e1d35aba233d5f0fd5a80fce.tar.gz external_llvm-bf65268def058af3e1d35aba233d5f0fd5a80fce.tar.bz2 |
Add more missing createXxxPass functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19370 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Transforms/IPO.h | 5 | ||||
-rw-r--r-- | include/llvm/Transforms/LinkAllPasses.h | 6 | ||||
-rw-r--r-- | include/llvm/Transforms/Scalar.h | 11 | ||||
-rw-r--r-- | lib/Transforms/IPO/LoopExtractor.cpp | 5 | ||||
-rw-r--r-- | lib/Transforms/Scalar/BasicBlockPlacement.cpp | 3 | ||||
-rw-r--r-- | lib/Transforms/Scalar/PRE.cpp | 1 |
6 files changed, 30 insertions, 1 deletions
diff --git a/include/llvm/Transforms/IPO.h b/include/llvm/Transforms/IPO.h index 77f63f5..d2371de 100644 --- a/include/llvm/Transforms/IPO.h +++ b/include/llvm/Transforms/IPO.h @@ -147,6 +147,11 @@ ModulePass *createIPSCCPPass(); //===----------------------------------------------------------------------===// // +/// createLoopExtractorPass - This pass extracts all natural loops from the +/// program into a function if it can. +/// +ModulePass *createLoopExtractorPass(); + /// createSingleLoopExtractorPass - This pass extracts one natural loop from the /// program into a function if it can. This is used by bugpoint. /// diff --git a/include/llvm/Transforms/LinkAllPasses.h b/include/llvm/Transforms/LinkAllPasses.h index 663ed86..f29f3de 100644 --- a/include/llvm/Transforms/LinkAllPasses.h +++ b/include/llvm/Transforms/LinkAllPasses.h @@ -42,6 +42,7 @@ namespace { (void) llvm::createAggressiveDCEPass(); (void) llvm::createArgumentPromotionPass(); + (void) llvm::createBlockPlacementPass(); (void) llvm::createBlockProfilerPass(); (void) llvm::createBreakCriticalEdgesPass(); (void) llvm::createCFGSimplificationPass(); @@ -68,6 +69,7 @@ namespace { (void) llvm::createInstructionCombiningPass(); (void) llvm::createInternalizePass(); (void) llvm::createLICMPass(); + (void) llvm::createLoopExtractorPass(); (void) llvm::createLoopInstrumentationPass(); (void) llvm::createLoopSimplifyPass(); (void) llvm::createLoopStrengthReducePass(); @@ -78,8 +80,10 @@ namespace { (void) llvm::createLowerGCPass(); (void) llvm::createLowerInvokePass(); (void) llvm::createLowerPackedPass(); + (void) llvm::createLowerSelectPass(); (void) llvm::createLowerSetJmpPass(); (void) llvm::createLowerSwitchPass(); + (void) llvm::createPREPass(); (void) llvm::createProfilePathsPass(); (void) llvm::createPromoteMemoryToRegister(); (void) llvm::createPruneEHPass(); @@ -89,11 +93,13 @@ namespace { (void) llvm::createSCCPPass(); (void) llvm::createScalarReplAggregatesPass(); (void) llvm::createSingleLoopExtractorPass(); + (void) llvm::createStripSymbolsPass(); (void) llvm::createTailCallEliminationPass(); (void) llvm::createTailDuplicationPass(); (void) llvm::createTraceBasicBlockPass(); (void) llvm::createTraceValuesPassForBasicBlocks(); (void) llvm::createTraceValuesPassForFunction(); + (void) llvm::createUnifyFunctionExitNodesPass(); } } X; }; diff --git a/include/llvm/Transforms/Scalar.h b/include/llvm/Transforms/Scalar.h index b5af277..6675e2d 100644 --- a/include/llvm/Transforms/Scalar.h +++ b/include/llvm/Transforms/Scalar.h @@ -275,7 +275,16 @@ FunctionPass *createLowerGCPass(); // Returns a pass which converts all instances of ConstantExpression // into regular LLVM instructions. FunctionPass* createLowerConstantExpressionsPass(); - + +//===----------------------------------------------------------------------===// +// This pass reorders basic blocks in order to increase the number of fall- +// through conditional branches. +FunctionPass *createBlockPlacementPass(); + +//===----------------------------------------------------------------------===// +// This pass does partial redundancy elimination. +FunctionPass *createPREPass(); + } // End llvm namespace #endif diff --git a/lib/Transforms/IPO/LoopExtractor.cpp b/lib/Transforms/IPO/LoopExtractor.cpp index 1bdb5c2..638820e 100644 --- a/lib/Transforms/IPO/LoopExtractor.cpp +++ b/lib/Transforms/IPO/LoopExtractor.cpp @@ -58,6 +58,11 @@ namespace { Y("loop-extract-single", "Extract at most one loop into a new function"); } // End anonymous namespace +// createLoopExtractorPass - This pass extracts all natural loops from the +// program into a function if it can. +// +ModulePass *llvm::createLoopExtractorPass() { return new LoopExtractor(); } + bool LoopExtractor::runOnFunction(Function &F) { LoopInfo &LI = getAnalysis<LoopInfo>(); diff --git a/lib/Transforms/Scalar/BasicBlockPlacement.cpp b/lib/Transforms/Scalar/BasicBlockPlacement.cpp index cadc620..ec31bbf 100644 --- a/lib/Transforms/Scalar/BasicBlockPlacement.cpp +++ b/lib/Transforms/Scalar/BasicBlockPlacement.cpp @@ -31,6 +31,7 @@ #include "llvm/Pass.h" #include "llvm/Support/CFG.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Transforms/Scalar.h" #include <set> using namespace llvm; @@ -71,6 +72,8 @@ namespace { "Profile Guided Basic Block Placement"); } +FunctionPass *llvm::createBlockPlacementPass() { return new BlockPlacement(); } + bool BlockPlacement::runOnFunction(Function &F) { PI = &getAnalysis<ProfileInfo>(); diff --git a/lib/Transforms/Scalar/PRE.cpp b/lib/Transforms/Scalar/PRE.cpp index b8934d2..b849331 100644 --- a/lib/Transforms/Scalar/PRE.cpp +++ b/lib/Transforms/Scalar/PRE.cpp @@ -102,6 +102,7 @@ namespace { RegisterOpt<PRE> Z("pre", "Partial Redundancy Elimination"); } +FunctionPass* llvm::createPREPass() { return new PRE(); } bool PRE::runOnFunction(Function &F) { VN = &getAnalysis<ValueNumbering>(); |