[LLVMdev] Applying different Optimizations for different Functions - Questions?
Devang Patel
dpatel at apple.com
Mon Aug 11 14:25:01 PDT 2008
On Aug 10, 2008, at 9:50 PM, Murat wrote:
> Hi!
>
> I am trying to develop an LLVM tool which can apply different
> optimizations
> for selected functions. For example, I want to apply an optimization
> onto one
> function but not for another one.
>
> I am using the standard optimizations available in LLVM.
You are required to "add" passes, before running them, so that the
pass manager can schedule required analysis information properly.
In your case, you could try...
bool ComplNewBBFuncs::runOnModule(Module &M)
{
Function *Main = M.getFunction("main");
if (Main == 0)
{
cerr << "!!! No Main Function" << std::endl;
return false;
}
//Determine each Function
Function *CurFunc1 = M.getFunction("NewFunction1");
Function &Current1 = (*CurFunc1);
Function *CurFunc2 = M.getFunction("NewFunction2");
Function &Current2 = (*CurFunc2);
FunctionPassManager FPM1;
FPM1.add(createDeadStoreEliminationPass());
FunctionPassManager FPM2;
FPM2.add(createLoopUnrollPass()); /* This will setup loop pass
manager appropriately */
FPM1.run(Current1);
FPM2.run(Current2);
}
More information about the llvm-dev
mailing list