search for: createreassociatepass

Displaying 20 results from an estimated 46 matches for "createreassociatepass".

2013 Apr 17
2
[LLVMdev] [polly] pass ordering
Tobias Grosser wrote: > As said before, we could probably add it in between those two passes: > > MPM.add(createReassociatePass()); // Reassociate expressions > + addExtensionsToPM(EP_LoopOptimizerStart, MPM); > MPM.add(createLoopRotatePass()); // Rotate Loop As this is in the middle of other LNO passes, can you please rename s/EP_LoopOptimizerStart/EP_Polly_LNO/ or anything other than LoopOptimizerStart? Tha...
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
On 04/17/2013 09:04 PM, Sebastian Pop wrote: > Tobias Grosser wrote: >> As said before, we could probably add it in between those two passes: >> >> MPM.add(createReassociatePass()); // Reassociate expressions >> + addExtensionsToPM(EP_LoopOptimizerStart, MPM); >> MPM.add(createLoopRotatePass()); // Rotate Loop > > As this is in the middle of other LNO passes, can you please rename > s/EP_LoopOptimizerStart/EP_Polly_LNO/ or anything other than L...
2008 Dec 19
2
[LLVMdev] strange behaviour after extracting optimization pass code
...std::string functionName = "main"; llvm::Module* mod = some arbitrary valid modulepointer; llvm::ExistingModuleProvider mp(mod); llvm::FunctionPassManager fpm(&mp); fpm.add(new llvm::TargetData(mod)); fpm.add(llvm::createInstructionCombiningPass()); fpm.add(llvm::createReassociatePass()); fpm.add(llvm::createGVNPass()); fpm.add(llvm::createCFGSimplificationPass()); fpm.run(*f); //...get execution engine //... call execEngine->getPointerToFunction() //... execute function ----------------------------- Now if I extract exactly this code and put it into a dif...
2012 Sep 10
2
[LLVMdev] Dead Store Elimination
Hi, Here is the result of optimization using the following passes: llvm::createBasicAliasAnalysisPass() llvm::createInstructionCombiningPass() llvm::createReassociatePass() llvm::createGVNPass() llvm::createCFGSimplificationPass() The optimized IR seems to contain what look like dead stores on %8 and %9 in basic blocks 7 and haveData. How can I get rid of them? Thanks, Vinayak define internal void @block0() { entry: %0 = call i8* @RNI_File_new() %1 = call...
2010 Nov 15
6
[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)
...ring info about how the // target lays out data structures. OurFPM.add(new TargetData(*TheExecutionEngine->getTargetData())); // Do simple "peephole" optimizations and bit-twiddling optzns. OurFPM.add(createInstructionCombiningPass()); // Reassociate expressions. OurFPM.add(createReassociatePass()); // Eliminate Common SubExpressions. OurFPM.add(createGVNPass()); // Simplify the control flow graph (deleting unreachable blocks, etc). OurFPM.add(createCFGSimplificationPass()); It does simplify _some_ things. For example: ready> def simplifyThis(x) (x*2)+(2*x); Read function defi...
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
...oryToRegisterPass()); >>> PM.add(llvm::createInstructionCombiningPass()); >>> PM.add(llvm::createCFGSimplificationPass()); >>> PM.add(llvm::createTailCallEliminationPass()); >>> PM.add(llvm::createCFGSimplificationPass()); >>> PM.add(llvm::createReassociatePass()); >>> PM.add(llvm::createLoopRotatePass()); >>> PM.add(llvm::createInstructionCombiningPass()); >>> >>> if (!SCEVCodegen) >>> PM.add(polly::createIndVarSimplifyPass()); >>> >>> PM.add(polly::createCodePreparationPass(...
2013 Apr 17
2
[LLVMdev] [polly] pass ordering
...vm::createPromoteMemoryToRegisterPass()); > > PM.add(llvm::createInstructionCombiningPass()); > > PM.add(llvm::createCFGSimplificationPass()); > > PM.add(llvm::createTailCallEliminationPass()); > > PM.add(llvm::createCFGSimplificationPass()); > > PM.add(llvm::createReassociatePass()); > > PM.add(llvm::createLoopRotatePass()); > > PM.add(llvm::createInstructionCombiningPass()); > > > > if (!SCEVCodegen) > > PM.add(polly::createIndVarSimplifyPass()); > > > > PM.add(polly::createCodePreparationPass()); > > PM.add(pol...
2011 Nov 04
2
[LLVMdev] Question on JIT optimizations
...ecutionEngine->getTargetData())); // Provide basic AliasAnalysis support for GVN. OurFPM.add(createBasicAliasAnalysisPass()); // Do simple "peephole" optimizations and bit-twiddling optzns. OurFPM.add(createInstructionCombiningPass()); // Reassociate expressions. OurFPM.add(createReassociatePass()); // Eliminate Common SubExpressions. OurFPM.add(createGVNPass()); // Simplify the control flow graph (deleting unreachable blocks, etc). OurFPM.add(createCFGSimplificationPass()); OurFPM.doInitialization(); // Set the global so the code gen can use this. TheFPM = &OurFPM;...
2008 Dec 19
1
[LLVMdev] strange behaviour after extracting optimization pass code
...d::string functionName = "main"; llvm::Module* mod = some arbitrary valid modulepointer; llvm::ExistingModuleProvider mp(mod); llvm::FunctionPassManager fpm(&mp); fpm.add(new llvm::TargetData(mod)); fpm.add(llvm::createInstructionCombiningPass()); fpm.add(llvm::createReassociatePass()); fpm.add(llvm::createGVNPass()); fpm.add(llvm::createCFGSimplificationPass()); fpm.run(*f); //...get execution engine //... call execEngine->getPointerToFunction() //... execute function ----------------------------- Now if I extract exactly this code and put it into...
2012 Sep 10
0
[LLVMdev] Dead Store Elimination
Hi Vinayak, > Here is the result of optimization using the following passes: > > llvm::createBasicAliasAnalysisPass() > llvm::createInstructionCombiningPass() > llvm::createReassociatePass() > llvm::createGVNPass() > llvm::createCFGSimplificationPass() > you should run the mem2reg pass too, and first. > ; <label>:7 ; preds = %openSuccessBB > %8 = alloca i64, align 8 Put alloca instructions in the entry block if possible...
2008 Dec 19
0
[LLVMdev] strange behaviour after extracting optimization pass code
..."main"; > llvm::Module* mod = some arbitrary valid modulepointer; { > > llvm::ExistingModuleProvider mp(mod); > llvm::FunctionPassManager fpm(&mp); > fpm.add(new llvm::TargetData(mod)); > fpm.add(llvm::createInstructionCombiningPass()); > fpm.add(llvm::createReassociatePass()); > fpm.add(llvm::createGVNPass()); > fpm.add(llvm::createCFGSimplificationPass()); > fpm.run(*f); } > //...get execution engine > //... call execEngine->getPointerToFunction() > //... execute function
2013 Sep 14
0
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...ToRegisterPass()); // PM.add(llvm::createInstructionCombiningPass()); //this is the most expensive canonicalization pass for flop benchmark PM.add(llvm::createCFGSimplificationPass()); PM.add(llvm::createTailCallEliminationPass()); PM.add(llvm::createCFGSimplificationPass()); PM.add(llvm::createReassociatePass()); PM.add(llvm::createLoopRotatePass()); PM.add(llvm::createInstructionCombiningPass()); PM.add(polly::createCodePreparationPass()); } Results are shown on http://188.40.87.11:8000/db_default/v4/nts/46?baseline=44&compare_to=44. As shown in the results, 13 benchmarks have >5% compile-...
2013 Sep 13
2
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...ryToRegisterPass()); PM.add(llvm::createInstructionCombiningPass()); //this is the most expensive canonicalization pass for flop benchmark PM.add(llvm::createCFGSimplificationPass()); PM.add(llvm::createTailCallEliminationPass()); PM.add(llvm::createCFGSimplificationPass()); PM.add(llvm::createReassociatePass()); PM.add(llvm::createLoopRotatePass()); PM.add(llvm::createInstructionCombiningPass()); if (!SCEVCodegen) PM.add(polly::createIndVarSimplifyPass()); PM.add(polly::createCodePreparationPass()); } If we remove the first "InstructionCombining" pass, then the compile-time is red...
2013 Sep 25
0
[LLVMdev] [Polly] Move Polly's execution later
...y/lib/RegisterPasses.cpp):     PM.add(llvm::createPromoteMemoryToRegisterPass());     PM.add(llvm::createInstructionCombiningPass());     PM.add(llvm::createCFGSimplificationPass());     PM.add(llvm::createTailCallEliminationPass());     PM.add(llvm::createCFGSimplificationPass());     PM.add(llvm::createReassociatePass());     PM.add(llvm::createLoopRotatePass());     PM.add(llvm::createInstructionCombiningPass()); We can see that some of them are also called in common cases (lib/Transforms/IPO/PassManagerBuilder.cpp:181):   MPM.add(createEarlyCSEPass());   MPM.add(createJumpThreadingPass());   MPM.add(createCo...
2010 Nov 15
0
[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)
...arget lays out data structures. > OurFPM.add(new TargetData(*TheExecutionEngine->getTargetData())); > // Do simple "peephole" optimizations and bit-twiddling optzns. > OurFPM.add(createInstructionCombiningPass()); > // Reassociate expressions. > OurFPM.add(createReassociatePass()); > // Eliminate Common SubExpressions. > OurFPM.add(createGVNPass()); > // Simplify the control flow graph (deleting unreachable blocks, etc). > OurFPM.add(createCFGSimplificationPass()); > > It does simplify _some_ things. For example: > > ready> def simp...
2013 Sep 19
1
[LLVMdev] How do you add MachineBlockPlacement to a Function Pass Manager?
...... if(OptLevel > 1) { TheFPM = new llvm::FunctionPassManager(M); // add some passes for opt1 // ... if(OptLevel > 2) { // BlockPlacement TheFPM->add(llvm::createBlockPlacementPass()); // Reassociate expressions. TheFPM->add(llvm::createReassociatePass()); // etc ... It looks like llvm actually had a `createMachineBlockPlacementPass` once a upon a time. But that was removed and refactored by atrick #150100. It now just has a extern char &MachineBlockPlacementID; in Passes.h instead. I'm /very/ new to llvm and only started look...
2013 Apr 17
3
[LLVMdev] [polly] pass ordering
...asses(llvm::PassManagerBase &PM) { PM.add(llvm::createPromoteMemoryToRegisterPass()); PM.add(llvm::createInstructionCombiningPass()); PM.add(llvm::createCFGSimplificationPass()); PM.add(llvm::createTailCallEliminationPass()); PM.add(llvm::createCFGSimplificationPass()); PM.add(llvm::createReassociatePass()); PM.add(llvm::createLoopRotatePass()); PM.add(llvm::createInstructionCombiningPass()); if (!SCEVCodegen) PM.add(polly::createIndVarSimplifyPass()); PM.add(polly::createCodePreparationPass()); PM.add(polly::createRegionSimplifyPass()); Sergei was saying that on some benchmarks P...
2010 Nov 15
1
[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)
Still no luck after switching to: theFPM->add( new llvm::TargetData( *theExecutionEngine->getTargetData() ) ); theFPM->add( llvm::createBasicAliasAnalysisPass() ); theFPM->add( llvm::createInstructionCombiningPass() ); theFPM->add( llvm::createReassociatePass() ); theFPM->add( llvm::createGVNPass() ); theFPM->add( llvm::createCFGSimplificationPass() ); Based on output from "llvm-ld -version" and "clang -v" I'm using: llvm version 2.9svn clang version 2.9 (trunk 118171) > -----Original Message----- > From: D...
2011 Nov 04
0
[LLVMdev] Question on JIT optimizations
...> // Provide basic AliasAnalysis support for GVN. > OurFPM.add(createBasicAliasAnalysisPass()); > // Do simple"peephole" optimizations and bit-twiddling optzns. > OurFPM.add(createInstructionCombiningPass()); > // Reassociate expressions. > OurFPM.add(createReassociatePass()); > // Eliminate Common SubExpressions. > OurFPM.add(createGVNPass()); > // Simplify the control flow graph (deleting unreachable blocks, etc). > OurFPM.add(createCFGSimplificationPass()); > > OurFPM.doInitialization(); > > // Set the global so the code g...
2013 Sep 25
3
[LLVMdev] [Polly] Move Polly's execution later
...PM.add(llvm::createPromoteMemoryToRegisterPass()); > PM.add(llvm::createInstructionCombiningPass()); > PM.add(llvm::createCFGSimplificationPass()); > PM.add(llvm::createTailCallEliminationPass()); > PM.add(llvm::createCFGSimplificationPass()); > PM.add(llvm::createReassociatePass()); > PM.add(llvm::createLoopRotatePass()); > PM.add(llvm::createInstructionCombiningPass()); > > We can see that some of them are also called in common cases (lib/Transforms/IPO/PassManagerBuilder.cpp:181): > > MPM.add(createEarlyCSEPass()); > MPM.add(createJum...