aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Cohen <jeffc@jolt-lang.org>2005-01-09 20:42:52 +0000
committerJeff Cohen <jeffc@jolt-lang.org>2005-01-09 20:42:52 +0000
commit1d7b5de7eef6039dbc00bf50b582a5d7426e03fc (patch)
tree882511edbe11ecedd7fa8238606a45174f45b91e
parentfd161e964aa02636c00364ae4d46bf4e384df096 (diff)
Add last four createXxxPass functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19424 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Analysis/Passes.h28
-rw-r--r--include/llvm/Transforms/LinkAllPasses.h4
-rw-r--r--lib/Analysis/DataStructure/DataStructureAA.cpp3
-rw-r--r--lib/Analysis/DataStructure/DataStructureOpt.cpp3
-rw-r--r--lib/Analysis/DataStructure/Parallelize.cpp3
-rw-r--r--lib/Analysis/DataStructure/Steensgaard.cpp3
6 files changed, 44 insertions, 0 deletions
diff --git a/include/llvm/Analysis/Passes.h b/include/llvm/Analysis/Passes.h
index 0c991c5aeb..47e1e72558 100644
--- a/include/llvm/Analysis/Passes.h
+++ b/include/llvm/Analysis/Passes.h
@@ -80,6 +80,34 @@ namespace llvm {
// createNoProfileInfoPass - This pass implements the default "no profile".
//
ImmutablePass *createNoProfileInfoPass();
+
+ //===--------------------------------------------------------------------===//
+ //
+ // createDSAAPass - This pass implements simple context sensitive alias
+ // analysis.
+ //
+ ModulePass *createDSAAPass();
+
+ //===--------------------------------------------------------------------===//
+ //
+ // createDSOptPass - This pass uses DSA to do a series of simple
+ // optimizations.
+ //
+ ModulePass *createDSOptPass();
+
+ //===--------------------------------------------------------------------===//
+ //
+ // createParallelizePass - This pass parallelizes a program using the cilk
+ // multi-threaded runtime system.
+ //
+ ModulePass *createParallelizePass();
+
+ //===--------------------------------------------------------------------===//
+ //
+ // createSteensgaardPass - This pass uses the data structure graphs to do a
+ // simple context insensitive alias analysis.
+ //
+ ModulePass *createSteensgaardPass();
}
#endif
diff --git a/include/llvm/Transforms/LinkAllPasses.h b/include/llvm/Transforms/LinkAllPasses.h
index 163de11b4b..b5d67f73ba 100644
--- a/include/llvm/Transforms/LinkAllPasses.h
+++ b/include/llvm/Transforms/LinkAllPasses.h
@@ -56,6 +56,8 @@ namespace {
(void) llvm::createConstantMergePass();
(void) llvm::createConstantPropagationPass();
(void) llvm::createCorrelatedExpressionEliminationPass();
+ (void) llvm::createDSAAPass();
+ (void) llvm::createDSOptPass();
(void) llvm::createDeadArgEliminationPass();
(void) llvm::createDeadCodeEliminationPass();
(void) llvm::createDeadInstEliminationPass();
@@ -95,6 +97,7 @@ namespace {
(void) llvm::createNoAAPass();
(void) llvm::createNoProfileInfoPass();
(void) llvm::createPREPass();
+ (void) llvm::createParallelizePass();
(void) llvm::createProfilePathsPass();
(void) llvm::createPromoteMemoryToRegister();
(void) llvm::createPruneEHPass();
@@ -104,6 +107,7 @@ namespace {
(void) llvm::createSCCPPass();
(void) llvm::createScalarReplAggregatesPass();
(void) llvm::createSingleLoopExtractorPass();
+ (void) llvm::createSteensgaardPass();
(void) llvm::createStripSymbolsPass();
(void) llvm::createTailCallEliminationPass();
(void) llvm::createTailDuplicationPass();
diff --git a/lib/Analysis/DataStructure/DataStructureAA.cpp b/lib/Analysis/DataStructure/DataStructureAA.cpp
index 9b39c8fcfb..915909e3a1 100644
--- a/lib/Analysis/DataStructure/DataStructureAA.cpp
+++ b/lib/Analysis/DataStructure/DataStructureAA.cpp
@@ -14,6 +14,7 @@
#include "llvm/Module.h"
#include "llvm/Analysis/AliasAnalysis.h"
+#include "llvm/Analysis/Passes.h"
#include "llvm/Analysis/DataStructure/DataStructure.h"
#include "llvm/Analysis/DataStructure/DSGraph.h"
using namespace llvm;
@@ -71,6 +72,8 @@ namespace {
RegisterAnalysisGroup<AliasAnalysis, DSAA> Y;
}
+ModulePass *llvm::createDSAAPass() { return new DSAA(); }
+
// getGraphForValue - Return the DSGraph to use for queries about the specified
// value...
//
diff --git a/lib/Analysis/DataStructure/DataStructureOpt.cpp b/lib/Analysis/DataStructure/DataStructureOpt.cpp
index 1996aea67d..1d8373a01d 100644
--- a/lib/Analysis/DataStructure/DataStructureOpt.cpp
+++ b/lib/Analysis/DataStructure/DataStructureOpt.cpp
@@ -14,6 +14,7 @@
#include "llvm/Analysis/DataStructure/DataStructure.h"
#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "llvm/Analysis/Passes.h"
#include "llvm/Module.h"
#include "llvm/Constant.h"
#include "llvm/ADT/Statistic.h"
@@ -48,6 +49,8 @@ namespace {
RegisterOpt<DSOpt> X("ds-opt", "DSA-based simple optimizations");
}
+ModulePass *llvm::createDSOptPass() { return new DSOpt(); }
+
/// OptimizeGlobals - This method uses information taken from DSA to optimize
/// global variables.
///
diff --git a/lib/Analysis/DataStructure/Parallelize.cpp b/lib/Analysis/DataStructure/Parallelize.cpp
index 2bb6c7ff46..a12e323a9b 100644
--- a/lib/Analysis/DataStructure/Parallelize.cpp
+++ b/lib/Analysis/DataStructure/Parallelize.cpp
@@ -42,6 +42,7 @@
#include "llvm/Instructions.h"
#include "llvm/Module.h"
#include "PgmDependenceGraph.h"
+#include "llvm/Analysis/Passes.h"
#include "llvm/Analysis/DataStructure/DataStructure.h"
#include "llvm/Analysis/DataStructure/DSGraph.h"
#include "llvm/Support/InstVisitor.h"
@@ -408,6 +409,8 @@ namespace {
RegisterOpt<Parallelize> X("parallel", "Parallelize program using Cilk");
}
+ModulePass *llvm::createParallelizePass() { return new Parallelize(); }
+
bool Parallelize::runOnModule(Module& M) {
hash_set<Function*> parallelFunctions;
diff --git a/lib/Analysis/DataStructure/Steensgaard.cpp b/lib/Analysis/DataStructure/Steensgaard.cpp
index b0718a18b9..5102dddec1 100644
--- a/lib/Analysis/DataStructure/Steensgaard.cpp
+++ b/lib/Analysis/DataStructure/Steensgaard.cpp
@@ -17,6 +17,7 @@
#include "llvm/Analysis/DataStructure/DataStructure.h"
#include "llvm/Analysis/DataStructure/DSGraph.h"
#include "llvm/Analysis/AliasAnalysis.h"
+#include "llvm/Analysis/Passes.h"
#include "llvm/Module.h"
#include "llvm/Support/Debug.h"
using namespace llvm;
@@ -76,6 +77,8 @@ namespace {
RegisterAnalysisGroup<AliasAnalysis, Steens> Y;
}
+ModulePass *llvm::createSteensgaardPass() { return new Steens(); }
+
/// ResolveFunctionCall - Resolve the actual arguments of a call to function F
/// with the specified call site descriptor. This function links the arguments
/// and the return value for the call site context-insensitively.