Add more missing createXxxPass functions.
authorJeff Cohen <jeffc@jolt-lang.org>
Sat, 8 Jan 2005 17:21:40 +0000 (17:21 +0000)
committerJeff Cohen <jeffc@jolt-lang.org>
Sat, 8 Jan 2005 17:21:40 +0000 (17:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19370 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Transforms/IPO.h
include/llvm/Transforms/LinkAllPasses.h
include/llvm/Transforms/Scalar.h
lib/Transforms/IPO/LoopExtractor.cpp
lib/Transforms/Scalar/BasicBlockPlacement.cpp
lib/Transforms/Scalar/PRE.cpp

index 77f63f5c8de15f810eb41762b78ece357e4cd00e..d2371de5176515e5cfa5eacc793ea01fb234e9b2 100644 (file)
@@ -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.
 ///
index 663ed86af16a7d13e5996f29bd2b7d058e38a39f..f29f3de9952fc98241197b4b436a916ebaac7041 100644 (file)
@@ -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;
 };
index b5af277e7eaf422eb2c5257aaf8ed15b7870d098..6675e2d04319eadd2808a52c24643f32e1f0fb45 100644 (file)
@@ -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
index 1bdb5c272a65347e3e5c4ab0d76ae436765ce0e3..638820e3986826d2729820c79b9e974aba79d8bf 100644 (file)
@@ -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>();
 
index cadc6201708a7c390e53fe8c08608f00f6ac4264..ec31bbf87edfc5c95fadfd8e9b62e068607c8bc6 100644 (file)
@@ -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>();
 
index b8934d213d2d1231a0ad9779ba98c61cf34d9816..b849331ff1e3c53acb7f53dfda380a2de52ee0e8 100644 (file)
@@ -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>();