namespace {
struct ConstantMerge : public Pass {
- const char *getPassName() const {return "Merge Duplicate Global Constants";}
-
// run - For this pass, process all of the globals in the module,
// eliminating duplicate constants.
//
AU.preservesCFG();
}
};
+
+RegisterPass<ConstantMerge> X("constmerge", "Merge Duplicate Global Constants");
}
Pass *createConstantMergePass() { return new ConstantMerge(); }
Statistic<>NumResolved("funcresolve\t- Number of varargs functions resolved");
struct FunctionResolvingPass : public Pass {
- const char *getPassName() const { return "Resolve Functions"; }
-
bool run(Module &M);
};
+ RegisterPass<FunctionResolvingPass> X("funcresolve", "Resolve Functions");
}
Pass *createFunctionResolvingPass() {
namespace {
struct FunctionInlining : public FunctionPass {
- const char *getPassName() const { return "Function Inlining"; }
virtual bool runOnFunction(Function &F) {
return doFunctionInlining(F);
}
};
+ RegisterPass<FunctionInlining> X("inline", "Function Integration/Inlining");
}
Pass *createFunctionInliningPass() { return new FunctionInlining(); }
Function *MallocFunc; // Functions in the module we are processing
Function *FreeFunc; // Initialized by doPassInitializationVirt
public:
- inline RaiseAllocations() : MallocFunc(0), FreeFunc(0) {}
-
- const char *getPassName() const { return "Raise Allocations"; }
+ RaiseAllocations() : MallocFunc(0), FreeFunc(0) {}
// doPassInitialization - For the raise allocations pass, this finds a
// declaration for malloc and free if they exist.
bool runOnBasicBlock(BasicBlock &BB);
};
+RegisterPass<RaiseAllocations>
+X("raiseallocs", "Raise allocations from calls to instructions");
} // end anonymous namespace
const TargetData &DataLayout;
public:
- inline LowerAllocations(const TargetData &TD) : DataLayout(TD) {
+ LowerAllocations(const TargetData &TD) : DataLayout(TD) {
MallocFunc = FreeFunc = 0;
}
- const char *getPassName() const { return "Lower Allocations"; }
-
// doPassInitialization - For the lower allocations pass, this ensures that a
// module contains a declaration for a malloc and a free function.
//
//
bool runOnBasicBlock(BasicBlock &BB);
};
-
}
// createLowerAllocationsPass - Interface to this file...
return new LowerAllocations(TD);
}
+static RegisterPass<LowerAllocations>
+X("lowerallocs", "Lower allocations from instructions to calls (TD)",
+ createLowerAllocationsPass);
+
// doInitialization - For the lower allocations pass, this ensures that a
// module contains a declaration for a malloc and a free function.