search for: createtailcalleliminationpass

Displaying 20 results from an estimated 23 matches for "createtailcalleliminationpass".

2013 Sep 25
0
[LLVMdev] [Polly] Move Polly's execution later
...://llvm.org/bugs/show_bug.cgi?id=17323). By investigating those Polly canonicalization passes (polly/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)...
2013 Sep 25
3
[LLVMdev] [Polly] Move Polly's execution later
...17323). > > By investigating those Polly canonicalization passes (polly/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/Transform...
2013 Sep 22
4
[LLVMdev] [Polly] Move Polly's execution later
Hi Tobias, At 2013-09-19 22:59:25,"Tobias Grosser" <tobias at grosser.es> wrote: >On 09/19/2013 04:46 PM, Star Tan wrote: >> Hi Tobias, >> >> >> I am trying to move Polly later. >> >> >> LLVM provides some predefined ExtensionPointTy: >> EP_EarlyAsPossible, >> EP_ModuleOptimizerEarly, >>
2008 Aug 03
1
[LLVMdev] question about tail call elimination pass ..
Hi, createTailCallEliminationPass() is able to turn recursive functions into loops when the functions are written in tail recursive form. However, I'm unable to get it to convert mutually recursive functions to run without a growing stack. For example (in pseudo code)- define fact(n,result) if n < 2 then result else...
2013 Sep 14
0
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...gisterCanonicalicationPasses(llvm::PassManagerBase &PM) { PM.add(llvm::createPromoteMemoryToRegisterPass()); // 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?ba...
2013 Sep 13
2
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...registerCanonicalicationPasses(llvm::PassManagerBase &PM) { PM.add(llvm::createPromoteMemoryToRegisterPass()); 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...
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
...ead jumps. MPM.add(createCorrelatedValuePropagationPass()); // Propagate conditionals MPM.add(createCFGSimplificationPass()); // Merge & remove BBs MPM.add(createInstructionCombiningPass()); // Combine silly seq's MPM.add(createTailCallEliminationPass()); // Eliminate tail calls MPM.add(createCFGSimplificationPass()); // Merge & remove BBs MPM.add(createReassociatePass()); None of them seems to be a loop pass? So it seems to be at the start of the LNO. Also, I would like to avoid calling an extension point ...
2013 Apr 17
3
[LLVMdev] [polly] pass ordering
...ptimal. TODO: Optimize the set of canonicalization passes. static void registerCanonicalicationPasses(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());...
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
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
...t of canonicalization passes. > static void registerCanonicalicationPasses(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()); > >...
2013 Apr 17
2
[LLVMdev] [polly] pass ordering
...n passes. > >static void registerCanonicalicationPasses(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::createInd...
2013 Sep 17
4
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...gisterCanonicalicationPasses(llvm::PassManagerBase &PM) { PM.add(llvm::createPromoteMemoryToRegisterPass()); // 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?ba...
2006 Sep 03
0
[LLVMdev] llvm-gcc4: Enable various optimizations at -O1/-O2
...dulePasses->add(createScalarReplAggregatesPass()); // Break up aggregate allocas + PerModulePasses->add(createInstructionCombiningPass()); // Combine silly seq's + PerModulePasses->add(createCondPropagationPass()); // Propagate conditionals + PerModulePasses->add(createTailCallEliminationPass()); // Eliminate tail calls + PerModulePasses->add(createCFGSimplificationPass()); // Merge & remove BBs + PerModulePasses->add(createReassociatePass()); // Reassociate expressions + PerModulePasses->add(createLICMPass()); // Hoist loop inv...
2008 Aug 04
1
[LLVMdev] Repost: question about tail call elimination pass
NOTE: My original post was MIME mangled. So I'm reposting it. Sorry for that. Hi, createTailCallEliminationPass() is able to turn recursive functions into loops when the functions are written in tail recursive form. However, I'm unable to get it to convert mutually recursive functions to run without a growing stack. For example (in pseudo code)- define fact(n,result) if n < 2 then result else...
2008 Aug 04
0
[LLVMdev] question about tail call elimination pass ..
Thanks Chris. That works. -Srikumar On 04 Aug 2008, at 12:12 PM, llvmdev-request at cs.uiuc.edu wrote: >> Hi, >> >> createTailCallEliminationPass() is able to turn recursive >> functions into loops when the functions are written >> in tail recursive form. However, I'm unable to get it >> to convert mutually recursive functions to run without >> a growing stack. > > ... > >> doesn't get to run in...
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
...t; static void registerCanonicalicationPasses(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) >>>...
2013 Apr 17
1
[LLVMdev] [polly] pass ordering
...> static void registerCanonicalicationPasses(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::cre...
2013 Sep 09
0
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
On 09/09/2013 05:18 AM, Star Tan wrote: > > At 2013-09-09 05:52:35,"Tobias Grosser" <tobias at grosser.es> wrote: > >> On 09/08/2013 08:03 PM, Star Tan wrote: >> Also, I wonder if your runs include the dependence analysis. If this is >> the case, the numbers are very good. Otherwise, 30% overhead seems still >> to be a little bit much. > I think
2013 Sep 09
4
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
At 2013-09-09 05:52:35,"Tobias Grosser" <tobias at grosser.es> wrote: >On 09/08/2013 08:03 PM, Star Tan wrote: >> Hello all, >> >> >> I have done some basic experiments about Polly canonicalization passes and I found the SCEV canonicalization has significant impact on both compile-time and execution-time performance. > >Interesting. > >>
2013 Jul 28
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...// Constant prop with SCCP + + MPM.add(createDeadStoreEliminationPass()); // Delete dead stores + MPM.add(createAggressiveDCEPass()); // Delete dead instructions + MPM.add(createFunctionAttrsPass()); // Set readonly/readnone attrs + + MPM.add(createTailCallEliminationPass()); // Eliminate tail calls + } + + // End of CallGraph SCC passes. + } + + if (EnableLightWeightIPO) { + MPM.add(createGlobalOptimizerPass()); // Optimize out global vars + MPM.add(createIPSCCPPass()); // IP SCCP + MPM.add(createDeadArgEliminationPass()); // De...