search for: modpass1

Displaying 5 results from an estimated 5 matches for "modpass1".

2009 Apr 09
3
[LLVMdev] Pass Manager Restriction?
...g? Specifically, the following code will emit the assertion: [VMCore/PassManager.cpp:1597: virtual void llvm::ModulePass::assignPassManager(llvm::PMStack&, llvm::PassManagerType): Assertion `!PMS.empty() && "Unable to find appropriate Pass Manager"' failed] ****** struct ModPass1 : public ModulePass { static char ID; ModPass1() : ModulePass((intptr_t)&ID) {} virtual bool runOnModule(Module &M) { return false; } virtual void getAnalysisUsage(AnalysisUsage &AU) const {} }; struct FunPass1 : public FunctionPass { static char ID; FunPass1() : FunctionPa...
2009 Apr 10
0
[LLVMdev] Pass Manager Restriction?
...ng getAnalysis interfacegetAnalysis<DominatorTree>(Function), if the function pass does not require any module passes." http://llvm.org/docs/WritingAnLLVMPass.html In your case, A module pass (ModPass2) is trying tu use function level pass (FunPass1) which uses module level pass (ModPass1). This is not supported. - Devang On Apr 9, 2009, at 3:13 PM, Joseph Blomstedt wrote: > Having a ModulePass that requires a FunctionPass that in turn requires > another ModulePass results in an assertion being fired. Is this > expected behavior (that seems to be undocumented), or a bu...
2012 Mar 02
2
[LLVMdev] Interactions between module and loop passes
...others, my code segfaults. Is there any explanation why loop passes cannot be scheduled between two module passes? Perhaps I misunderstood the behaviour of pass managers. I paste here my "usage" information: int main(...){ Module m = ... //Read module PassManager pm; pm.add(new ModPass1); pm.add(new LoopPass); pm.add(new ModPass2); pm.run(m); } class ModPass1 : public ModulePass{ virtual void getAnalysisUsage(AnalysisUsage&AU) const{ AU.setPreservesAll(); } }; class LoopPass : public LoopPass{ virtual void getAnalysisUsage(AnalysisUsage&AU) cons...
2009 Apr 10
2
[LLVMdev] Pass Manager Restriction?
...cegetAnalysis<DominatorTree>(Function), if the > function pass does not require any module passes." > > http://llvm.org/docs/WritingAnLLVMPass.html > > In your case, A module pass (ModPass2) is trying tu use function level > pass (FunPass1) which uses module level pass (ModPass1). This is not > supported. > > - > Devang > > On Apr 9, 2009, at 3:13 PM, Joseph Blomstedt wrote: > >> Having a ModulePass that requires a FunctionPass that in turn requires >> another ModulePass results in an assertion being fired. Is this >> expected behavio...
2012 Mar 02
0
[LLVMdev] Interactions between module and loop passes
...tion why loop passes cannot be > scheduled between two module passes? Perhaps I misunderstood the > behaviour of pass managers. > > I paste here my "usage" information: > > int main(...){ > > Module m = ... //Read module > PassManager pm; > > pm.add(new ModPass1); > pm.add(new LoopPass); > pm.add(new ModPass2); > pm.run(m); > > } > > class ModPass1 : public ModulePass{ > > virtual void getAnalysisUsage(AnalysisUsage&AU) const{ > AU.setPreservesAll(); > } > }; > > class LoopPass : public...