aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Cohen <jeffc@jolt-lang.org>2005-01-08 17:21:40 +0000
committerJeff Cohen <jeffc@jolt-lang.org>2005-01-08 17:21:40 +0000
commitbf65268def058af3e1d35aba233d5f0fd5a80fce (patch)
treecf66144272a7f92e35ddc38263646c7f9e43560a
parentae0aacb8331e1227abea6601e531a10d0e65fdca (diff)
downloadexternal_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.h5
-rw-r--r--include/llvm/Transforms/LinkAllPasses.h6
-rw-r--r--include/llvm/Transforms/Scalar.h11
-rw-r--r--lib/Transforms/IPO/LoopExtractor.cpp5
-rw-r--r--lib/Transforms/Scalar/BasicBlockPlacement.cpp3
-rw-r--r--lib/Transforms/Scalar/PRE.cpp1
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>();