search for: createbreakcriticaledgespass

Displaying 8 results from an estimated 8 matches for "createbreakcriticaledgespass".

2009 Jul 27
2
[LLVMdev] Pass Scheduling Information without using opt
...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 if possible etc. I hope my explanation is be...
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
...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 > tells me what passes were run in what order,...
2006 Jul 04
0
[LLVMdev] Critical edges
Hi, I am able to remove the critical edges now. I only had to insert the line below in PPCTargetmachine.cpp. PM.add(createBreakCriticalEdgesPass()); However, it does not remove all the critical edges. I am getting a very weird dataflow graph (even without the Break Critical edges pass). The dataflow generated by MachineFunction::dump() for the program below is given here: http://compilers.cs.ucla.edu/fernando/projects/soc/images/loop_no_cr...
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
2006 Jul 04
3
[LLVMdev] Critical edges
Dear guys, I've adapted the pass in BreakCriticalEdges.cpp so I can use it before register allocation. But the pass is not changing the control flow graph of the machine function. I think it is because I am inserting the pass after the control flow graph of the machine function is built. I am inserting the pass as required by the register allocator, and I can see that the pass is
2007 Aug 19
1
[LLVMdev] MBB Critical edges
...me underling BasicBlock. Later on, it turned out that this restriction // was too much for the client methods, and I decided to remove it. The source // code still has the old assertion comented. One way that the client could // use to ensure the absence of critical edges was to call // call PM.add(createBreakCriticalEdgesPass()); in the target machine. But // this seems not to be enough. I've discovered this error when compiling the // Ackermann function. //===---------------------------------------------------------------------===// void CriticalEdgeRemoval_Fer::split_critical_edge (MachineBasicBlock & src...
2011 Apr 05
3
[LLVMdev] Building LLVM on Solaris/Sparc
...objects/tools/opt/Debug+Asserts/opt.o llvm::ModulePass::getPotentialPassManagerType() const/n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt/Debug+Asserts/AnalysisWrappers.o llvm::createMemCpyOptPass() /n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt/Debug+Asserts/opt.o llvm::createBreakCriticalEdgesPass() /n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt/Debug+Asserts/opt.o llvm::CallGraph::print(llvm::raw_ostream&, llvm::Module*) const/n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt/Debug+Asserts/AnalysisWrappers.o vtable for llvm::cl::basic_parser_impl/n/fs/scratch/tpo...