Add more missing createXxxPass functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19370 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jeff Cohen 2005-01-08 17:21:40 +00:00
parent ae0aacb833
commit bf65268def
6 changed files with 30 additions and 1 deletions

View 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.
///

View 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;
};

View 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

View 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>();

View 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>();

View 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>();