Displaying 5 results from an estimated 5 matches for "fpm2".
Did you mean:
fpm
2008 Aug 11
2
[LLVMdev] Applying different Optimizations for different Functions - Questions?
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.
That is the runOnModule function I have written:
bool ComplNewBBFuncs::runOnModule(Module &M)
{
Function *Main =
2009 Jul 27
2
[LLVMdev] Pass Scheduling Information without using opt
...ePass {
bool runOnModule(mod) {
for some Functions f in mod {
(do some stuff)
ExistingModuleProvider mp(mod);
FunctionPassManager* fpm =
new FunctionPassManager(&mp);
fpm->add(createLowerSwitchesPass());
fpm->add(createBreakCriticalEdgesPass());
fpm->add(createLoopSimplifyPass());
fpm2->run(*f);
mp.releaseModule();
(do more stuff)
}
}
}
Now what I want to have is some runtime-output of the pass manager that
tells me what passes were run in what order, give me timing information
if possible etc.
I hope my explanation is better this time :).
Cheers,
Ralf
2009 Jul 26
0
[LLVMdev] Pass Scheduling Information without using opt
On Sun, Jul 26, 2009 at 1:48 PM, Ralf Karrenberg<Chareos at gmx.de> wrote:
> Hey Daniel,
>
> thanks for the response.
>
>> I believe all you need to do is call llvm::llvm_shutdown().
>>
> I am not sure that this is what I need. When and how should I call
> llvm_shutdown()?
At the end of the program, this just arranges for LLVM's "managed
statics"
2009 Jul 27
0
[LLVMdev] Pass Scheduling Information without using opt
...anager* fpm =
> new FunctionPassManager(&mp);
I think creating a new Function Pass Manager inside a module pass is
not ideal, however...
>
> fpm->add(createLowerSwitchesPass());
> fpm->add(createBreakCriticalEdgesPass());
> fpm->add(createLoopSimplifyPass());
>
> fpm2->run(*f);
>
> mp.releaseModule();
>
> (do more stuff)
> }
>
> }
>
> }
>
>
> Now what I want to have is some runtime-output of the pass manager that
> tells me what passes were run in what order, give me timing information
> if possible etc.
You can set...
2009 Jul 26
2
[LLVMdev] Pass Scheduling Information without using opt
Hey Daniel,
thanks for the response.
> I believe all you need to do is call llvm::llvm_shutdown().
>
I am not sure that this is what I need. When and how should I call
llvm_shutdown()?
After the FunctionPassManager is done, the calling ModulePass still
performs quite a few actions on the transformed code and also calls the
FunctionPassManager on different functions. However, I need