diff options
author | Chris Lattner <sabre@nondot.org> | 2002-02-26 21:46:54 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-02-26 21:46:54 +0000 |
commit | bd0ef77cde9c9e82f2b4ad33e4982c46274d6540 (patch) | |
tree | 0903b61112c9e6d336c8b623e235ede2f937f13c /tools/opt/opt.cpp | |
parent | 3b2541424f771ae11c30675ce06da7b380780028 (diff) |
Change over to use new style pass mechanism, now passes only expose small
creation functions in their public header file, unless they can help it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1816 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/opt/opt.cpp')
-rw-r--r-- | tools/opt/opt.cpp | 66 |
1 files changed, 22 insertions, 44 deletions
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 2b2447b155..69a0774a2f 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -53,27 +53,7 @@ enum Opts { globaldce, swapstructs, sortstructs, }; - -// New template functions - Provide functions that return passes of specified -// types, with specified arguments... -// -template<class PassClass> -Pass *New() { - return new PassClass(); -} - -template<class PassClass, typename ArgTy1, ArgTy1 Arg1> -Pass *New() { - return new PassClass(Arg1); -} - -template<class PassClass, typename ArgTy1, ArgTy1 Arg1, - typename ArgTy2, ArgTy1 Arg2> -Pass *New() { - return new PassClass(Arg1, Arg2); -} - -static Pass *NewPrintMethodPass() { +static Pass *createPrintMethodPass() { return new PrintMethodPass("Current Method: \n", &cerr); } @@ -83,35 +63,33 @@ struct { enum Opts OptID; Pass * (*PassCtor)(); } OptTable[] = { - { dce , New<DeadCodeElimination> }, - { constprop , New<ConstantPropogation> }, - { inlining , New<MethodInlining> }, - { constmerge , New<ConstantMerge> }, - { strip , New<SymbolStripping> }, - { mstrip , New<FullSymbolStripping> }, - { mergereturn, New<UnifyMethodExitNodes> }, - - { indvars , New<InductionVariableSimplify> }, - { instcombine, New<InstructionCombining> }, - { sccp , New<SCCPPass> }, - { adce , New<AgressiveDCE> }, - { raise , New<RaisePointerReferences> }, + { dce , createDeadCodeEliminationPass }, + { constprop , createConstantPropogationPass }, + { inlining , createMethodInliningPass }, + { constmerge , createConstantMergePass }, + { strip , createSymbolStrippingPass }, + { mstrip , createFullSymbolStrippingPass }, + { mergereturn, createUnifyMethodExitNodesPass }, + + { indvars , createIndVarSimplifyPass }, + { instcombine, createInstructionCombiningPass }, + { sccp , createSCCPPass }, + { adce , createAgressiveDCEPass }, + { raise , createRaisePointerReferencesPass }, { mem2reg , newPromoteMemoryToRegister }, - { trace , New<InsertTraceCode, bool, true, bool, true> }, - { tracem , New<InsertTraceCode, bool, false, bool, true> }, + { trace , createTraceValuesPassForBasicBlocks }, + { tracem , createTraceValuesPassForMethod }, { paths , createProfilePathsPass }, - { print , NewPrintMethodPass }, + { print , createPrintMethodPass }, { verify , createVerifierPass }, - { raiseallocs, New<RaiseAllocations> }, - { cleangcc , New<CleanupGCCOutput> }, - { globaldce , New<GlobalDCE> }, - { swapstructs, New<SimpleStructMutation, SimpleStructMutation::Transform, - SimpleStructMutation::SwapElements>}, - { sortstructs, New<SimpleStructMutation, SimpleStructMutation::Transform, - SimpleStructMutation::SortElements>}, + { raiseallocs, createRaiseAllocationsPass }, + { cleangcc , createCleanupGCCOutputPass }, + { globaldce , createGlobalDCEPass }, + { swapstructs, createSwapElementsPass }, + { sortstructs, createSortElementsPass }, }; // Command line option handling code... |