Add last four createXxxPass functions
authorJeff Cohen <jeffc@jolt-lang.org>
Sun, 9 Jan 2005 20:42:52 +0000 (20:42 +0000)
committerJeff Cohen <jeffc@jolt-lang.org>
Sun, 9 Jan 2005 20:42:52 +0000 (20:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19424 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/Passes.h
include/llvm/Transforms/LinkAllPasses.h
lib/Analysis/DataStructure/DataStructureAA.cpp
lib/Analysis/DataStructure/DataStructureOpt.cpp
lib/Analysis/DataStructure/Parallelize.cpp
lib/Analysis/DataStructure/Steensgaard.cpp

index 0c991c5aeb133a72c3f01e508a596f501a2931ef..47e1e72558d9bdbf8ddb6235a952134eb2b234bd 100644 (file)
@@ -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
index 163de11b4b3ab30b57ae12bb47290cc064e4966f..b5d67f73ba5c1358e8ae3bb19f8772e9bdb2d670 100644 (file)
@@ -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();
index 9b39c8fcfb0becd63a6793c06cd53568874c9eec..915909e3a19d34d832a21f0a7a870ed0a168b6f3 100644 (file)
@@ -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...
 //
index 1996aea67d6a4f74a883898da91dd38f8d01f713..1d8373a01df5ff778ea6d41eab8069992b42aa39 100644 (file)
@@ -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.
 ///
index 2bb6c7ff46c5b33d466eb498ceb9cc9cb59e1518..a12e323a9b5a9f56848dd01d63b750fdc13b2332 100644 (file)
@@ -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;
index b0718a18b9773db03057d14dec050f0535b25283..5102dddec1924b623a2d8eb63b39c232b3f0cb8e 100644 (file)
@@ -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.