Expose the lowerallocs pass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2602 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-05-10 15:43:07 +00:00
parent 3dec1f2722
commit e04f4b60c6

View File

@ -25,18 +25,23 @@
#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"
#include "llvm/Transforms/Instrumentation/TraceValues.h"
#include "llvm/Transforms/Instrumentation/ProfilePaths.h"
#include "llvm/Target/TargetData.h"
#include "Support/CommandLine.h"
#include "Support/Signals.h"
#include <fstream>
#include <memory>
// FIXME: This should be parameterizable eventually for different target
// types...
static TargetData TD("opt target");
// Opts enum - All of the transformations we can do...
enum Opts {
// Basic optimizations
dce, die, constprop, gcse, inlining, constmerge, strip, mstrip, mergereturn,
// Miscellaneous Transformations
raiseallocs, funcresolve, cleangcc, lowerrefs,
raiseallocs, lowerallocs, funcresolve, cleangcc, lowerrefs,
// Printing and verifying...
print, printm, verify,
@ -59,6 +64,10 @@ static Pass *createPrintModulePass() {
return new PrintModulePass(&cerr);
}
static Pass *createLowerAllocationsPassNT() {
return createLowerAllocationsPass(TD);
}
// OptTable - Correlate enum Opts to Pass constructors...
//
struct {
@ -93,9 +102,10 @@ struct {
{ printm , createPrintModulePass },
{ verify , createVerifierPass },
{ raiseallocs, createRaiseAllocationsPass },
{ cleangcc , createCleanupGCCOutputPass },
{ funcresolve, createFunctionResolvingPass },
{ raiseallocs, createRaiseAllocationsPass },
{ lowerallocs, createLowerAllocationsPassNT },
{ cleangcc , createCleanupGCCOutputPass },
{ funcresolve, createFunctionResolvingPass },
{ internalize, createInternalizePass },
{ globaldce , createGlobalDCEPass },
@ -139,6 +149,7 @@ cl::EnumList<enum Opts> OptimizationList(cl::NoFlags,
clEnumVal(poolalloc , "Pool allocate disjoint datastructures"),
clEnumVal(raiseallocs, "Raise allocations from calls to instructions"),
clEnumVal(lowerallocs, "Lower allocations from instructions to calls (TD)"),
clEnumVal(cleangcc , "Cleanup GCC Output"),
clEnumVal(funcresolve, "Resolve calls to foo(...) to foo(<concrete types>)"),
clEnumVal(raise , "Raise to Higher Level"),