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...