Displaying 4 results from an estimated 4 matches for "createlowerswitchespass".
2009 Jul 27
2
[LLVMdev] Pass Scheduling Information without using opt
...about
the PassManager run as a whole.
Here is some example code that describes what I am doing:
MyPass : ModulePass {
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...
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
...ule(mod) {
>
> for some Functions f in mod {
> (do some stuff)
>
> ExistingModuleProvider mp(mod);
> FunctionPassManager* 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...
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