search for: addextensionstopm

Displaying 16 results from an estimated 16 matches for "addextensionstopm".

2017 Dec 21
2
Pass ordering - GVN vs. loop optimizations
...ionPass()); addInstructionCombiningPass(MPM); MPM.add(createIndVarSimplifyPass()); // Canonicalize indvars // <I probably want to add some SimplifyCfg pass here, but // that's a separate issue> MPM.add(createLoopIdiomPass()); // Recognize idioms like memset. addExtensionsToPM(EP_LateLoopOptimizations, MPM); MPM.add(createLoopDeletionPass()); // Delete dead loops if (EnableLoopInterchange) { MPM.add(createLoopInterchangePass()); // Interchange loops MPM.add(createCFGSimplificationPass()); } if (!DisableUnrollLoops) MPM.add(createSimpleLoopUnr...
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? Thanks, Sebastian -- Qualcomm Innovation Center, Inc. is a m...
2018 Aug 09
3
Legacy Loop Pass Manager question
...in between, I used to think they would belong to the same loop pass manager. But it does not seem to be the case. For example for this code snippet PM.add(createIndVarSimplifyPass()); // Canonicalize indvars MPM.add(createLoopIdiomPass()); // Recognize idioms like memset. addExtensionsToPM(EP_LateLoopOptimizations, MPM); MPM.add(createLoopDeletionPass()); // Delete dead loops .. if (!DisableUnrollLoops) MPM.add(createSimpleLoopUnrollPass(OptLevel)); // Unroll small loops I see -debug-pass=Structure output: Scalar Evolution Analysis Loop Pass Manag...
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 LoopOptimizerStart? It is in the middle? The passes executed b...
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
...guess a reasonable set of cleanup passes around Polly in the case when SCEVcodegen is disabled. It seems we agree the right location is somewhere in the LNO. 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 Given that Hal feels it is save to have a couple of passes between Polly and the loop vectorizer. Tobias Tobi
2012 Oct 17
2
[LLVMdev] please advise on PassManager
.../Transforms/IPO/PassManagerBuilder.cpp void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) { // If all optimizations are disabled, just run the always-inline pass. if (OptLevel == 0) { if (Inliner) { MPM.add(Inliner); Inliner = 0; } addExtensionsToPM(EP_EnabledOnOptLevel0, MPM); return; } ... if (Inliner) { MPM.add(Inliner); Inliner = 0; } ... addExtensionsToPM(EP_OptimizerLast, MPM); At O0 we use PassManagerBuilder::EP_EnabledOnOptLevel0 insertion point, at -O1+ we use PassManagerBuilder::EP_OptimizerLast, bu...
2011 Dec 06
2
[LLVMdev] Assertion `PI && "Expected required passes to be initialized"' failed for AliasAnalysis.
...gnal + 53 4 libc.so.6 0x00007fe8a08705c0 abort + 384 5 libc.so.6 0x00007fe8a0865941 __assert_fail + 241 6 clang 0x0000000001cb22a7 7 clang 0x0000000001cb4716 llvm::PassManager::add(llvm::Pass*) + 262 8 clang 0x00000000011e0ea6 llvm::PassManagerBuilder::addExtensionsToPM(llvm::PassManagerBuilder::ExtensionPointTy, llvm::PassManagerBase&) const + 406 9 clang 0x000000000083b5e1 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*, clang::B...
2013 Apr 17
2
[LLVMdev] [polly] pass ordering
Tobias Grosser wrote: > On 04/17/2013 05:53 PM, Sebastian Pop wrote: > >Hi, > > > >polly is run very early and schedules the following passes before it runs: > > > >/// @brief Schedule a set of canonicalization passes to prepare for Polly > >/// > >/// The set of optimization passes was partially taken/copied from the > >/// set of default
2011 Dec 06
0
[LLVMdev] Assertion `PI && "Expected required passes to be initialized"' failed for AliasAnalysis.
...    0x00007fe8a08705c0 abort + 384 > 5  libc.so.6       0x00007fe8a0865941 __assert_fail + 241 > 6  clang           0x0000000001cb22a7 > 7  clang           0x0000000001cb4716 llvm::PassManager::add(llvm::Pass*) + 262 > 8  clang           0x00000000011e0ea6 > llvm::PassManagerBuilder::addExtensionsToPM(llvm::PassManagerBuilder::ExtensionPointTy, > llvm::PassManagerBase&) const + 406 > 9  clang           0x000000000083b5e1 > clang::EmitBackendOutput(clang::DiagnosticsEngine&, > clang::CodeGenOptions const&, clang::TargetOptions const&, > clang::LangOptions const&...
2013 Jul 28
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...1 || OptLevelO2 || OptLevelO3) { Index: lib/Transforms/IPO/PassManagerBuilder.cpp =================================================================== --- lib/Transforms/IPO/PassManagerBuilder.cpp (revision 187135) +++ lib/Transforms/IPO/PassManagerBuilder.cpp (working copy) @@ -294,10 +294,78 @@ addExtensionsToPM(EP_OptimizerLast, MPM); } -void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM, +void PassManagerBuilder::populatePreIPOPassMgr(PassManagerBase &MPM) { + // If all optimizations are disabled, just run the always-inline pass. + if (OptLevel == 0) { + if (Inliner) { +...
2011 Nov 22
2
[LLVMdev] Instrumentation passes and -O0 optimization level
...lib/Transforms/IPO/PassManagerBuilder.cpp===================================================================--- lib/Transforms/IPO/PassManagerBuilder.cpp   (revision 144800)+++ lib/Transforms/IPO/PassManagerBuilder.cpp   (working copy)@@ -101,6 +101,7 @@     MPM.add(Inliner);     Inliner = 0;   }+ addExtensionsToPM(EP_EnabledOnOptLevel0, MPM);   return; } Index: tools/clang/lib/CodeGen/BackendUtil.cpp===================================================================--- tools/clang/lib/CodeGen/BackendUtil.cpp     (revision 144800)+++ tools/clang/lib/CodeGen/BackendUtil.cpp     (working copy)@@ -150,6 +150,8 @...
2013 Jul 18
3
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
Andy and I briefly discussed this the other day, we have not yet got chance to list a detailed pass order for the pre- and post- IPO scalar optimizations. This is wish-list in our mind: pre-IPO: based on the ordering he propose, get rid of the inlining (or just inline tiny func), get rid of all loop xforms... post-IPO: get rid of inlining, or maybe we still need it, only
2011 Nov 17
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ll. For now I would keep it like this. I don't have a better solution, but wanted to write down my thoughts. > } > > PassManagerBuilder::~PassManagerBuilder() { > @@ -170,6 +176,14 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase&MPM) { > > addExtensionsToPM(EP_ScalarOptimizerLate, MPM); > > + if (Vectorize) { > + MPM.add(createBBVectorizePass()); > + if (OptLevel> 1) { > + MPM.add(createInstructionCombiningPass()); > + MPM.add(createGVNPass()); // Remove redundancies > + } > + } > +...
2011 Nov 21
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...'t have a better solution, but > wanted to write down my thoughts. > > > > } > > > > PassManagerBuilder::~PassManagerBuilder() { > > @@ -170,6 +176,14 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase&MPM) { > > > > addExtensionsToPM(EP_ScalarOptimizerLate, MPM); > > > > + if (Vectorize) { > > + MPM.add(createBBVectorizePass()); > > + if (OptLevel> 1) { > > + MPM.add(createInstructionCombiningPass()); > > + MPM.add(createGVNPass()); // Remove redundancies...
2011 Nov 16
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, et al., Attached is the my autovectorization pass. I've fixed a bug that appears when using -bb-vectorize-aligned-only, fixed some 80-col violations, etc., and at least on x86_64, all test cases pass except for a few; and all of these failures look like instruction-selection bugs. For example: MultiSource/Applications/ClamAV - fails to compile shared_sha256.c with an error: error in
2011 Nov 15
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, I've attached the latest version of my autovectorization patch. I was able to add support for using the ScalarEvolution analysis for load/store pairing (thanks for your help!). This led to a modest performance increase and a modest compile-time increase. This version also has a cutoff as you suggested (although the default value is set high (4000 instructions between pairs) because