similar to: [LLVMdev] Pass Incompatibility

Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Pass Incompatibility"

2010 Oct 20
0
[LLVMdev] Pass Incompatibility
On 10/20/10 6:05 AM, Luke Dalessandro wrote: > I have a transformation where I'd like to use both DominatorTree (for ExtractCodeRegion), and DemoteRegisterToMemory (i.e., reg2mem). The transformation is phased, so all occurrences of getAnalysis<DominatorTree>(Function) happen before any occurrence of getAnalysisID<FunctionPass>(&DemoteRegisterToMemoryID, Function). I
2010 Oct 20
0
[LLVMdev] Pass Incompatibility
On Oct 20, 2010, at 4:05 AM, Luke Dalessandro wrote: > If I register DemoteRegisterToMemoryID first I'd expect this to work. > then I get this assert during code extraction. > > CodeExtractor.cpp:681: llvm::Function*<unnamed>::CodeExtractor::ExtractCodeRegion(const std::vector<llvm::BasicBlock*, std::allocator<llvm::BasicBlock*> >&): Assertion
2010 May 08
3
[LLVMdev] [Fwd: Error while running my pass with opt]
Hi, you need something like this in your pass: void YourPass::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<DominatorTree>(); } because you need to specify which analysis you are using. Tobi
2010 May 08
0
[LLVMdev] [Fwd: Error while running my pass with opt]
But this is already present in my pass. And I am not able to understand the cause for the error: opt: /home/ambika/llvm_3/llvm-2.6/include/llvm/PassAnalysisSupport.h:203: AnalysisType& llvm::Pass::getAnalysisID(const llvm::PassInfo*) const [with AnalysisType = llvm::DominatorTree]: Assertion `ResultPass && "getAnalysis*() called on an analysis that was not "
2010 May 09
2
[LLVMdev] [Fwd: Error while running my pass with opt]
ambika wrote: > But this is already present in my pass. > And I am not able to understand the cause for the error: > Can you send a copy of your getAnalysisUsage() method for your pass? There are some funny errors that can occur when you do things that the PassManager cannot handle. For example, if you're requiring a transform pass, that can cause strange assertions from the
2010 May 10
2
[LLVMdev] [Fwd: Error while running my pass with opt]
ambika wrote: > Here is getAnalysisUsage() i am using, > > void getAnalysisUsage(AnalysisUsage &AU) const { > AU.setPreservesAll(); > AU.addRequired<DominatorTree>(); > } > > and then I use it as, > > > bool ptrTest::runOnModule(Module &M) { > > DominatorTree &DT = getAnalysis<DominatorTree>(); > ...... >
2010 Jan 09
2
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
Hello, The CodeExtractor contains a std::set<BasicBlock*> to keep track of the blocks to extract. Iterators on this set are not deterministic, and so the functions that are generated are not (the order of the inputs/outputs can change). The attached patch uses a SetVector instead. Ok to apply ? Thanks, Julien -- Julien Lerouge PGP Key Id: 0xB1964A62 PGP Fingerprint: 392D 4BAD DB8B CE7F
2010 May 09
0
[LLVMdev] [Fwd: Error while running my pass with opt]
Here is getAnalysisUsage() i am using, void getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequired<DominatorTree>(); } and then I use it as, bool ptrTest::runOnModule(Module &M) { DominatorTree &DT = getAnalysis<DominatorTree>(); ...... } John Criswell wrote: > ambika wrote: >> But this is already present in
2011 Mar 03
2
[LLVMdev] how can I have LoopInfo in a module pass?
Thanks John, I modify my code to like this: bool XXX::ModulePass(Module &M){ .... LoopInfo &li = getAnalysis<LoopInfo>(fi); .... } Here fi is a Function* pointing to main(). Now when I run the pass, another error shows up: AnalysisType& llvm::Pass::getAnalysisID(const llvm::PassInfo*, llvm::Function&) [with AnalysisType = llvm::LoopInfo]: Assertion `ResultPass
2010 May 11
0
[LLVMdev] [Fwd: Error while running my pass with opt]
John Criswell wrote: > ambika wrote: >> Here is getAnalysisUsage() i am using, >> >> void getAnalysisUsage(AnalysisUsage&AU) const { >> AU.setPreservesAll(); >> AU.addRequired<DominatorTree>(); >> } >> >> and then I use it as, >> >> >> bool ptrTest::runOnModule(Module&M) { >> >>
2010 Jan 09
0
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
On Jan 8, 2010, at 5:01 PM, Julien Lerouge wrote: > Hello, > > The CodeExtractor contains a std::set<BasicBlock*> to keep track of > the > blocks to extract. Iterators on this set are not deterministic, and so > the functions that are generated are not (the order of the > inputs/outputs can change). > > The attached patch uses a SetVector instead. Ok to apply ?
2008 Feb 01
1
[LLVMdev] Code Extractor Issue
I'm having an issue with the CodeExtractor. When I try to extract the lone basic block from the following function, I get an assertion error. define i32 @test(i32 %x) { %tmp = call i32 @test3( i32 %x ) ; <i32> [#uses=1] ret i32 %tmp } The assertion error is: lli: Dominators.cpp:71: void llvm::DominatorTree::splitBlock(llvm::BasicBlock*): Assertion
2011 Mar 03
2
[LLVMdev] how can I have LoopInfo in a module pass?
Hi all, I tried to have a LoopInfo object in a function pass, add addRequired<LoopInfo> in getAnalysisUsage, and then use getAnalysis<LoopInfo> in runOnFunction(). It worked OK. Now I want to have a module pass to traverse the functions, and similarly I want to have to loop information of the functions. When I did the above in runOnModule, and run the pass, the following error popped
2011 Mar 03
0
[LLVMdev] how can I have LoopInfo in a module pass?
On 3/3/11 3:09 PM, Wenbin Zhang wrote: > Hi all, > I tried to have a LoopInfo object in a function pass, add > addRequired<LoopInfo> in getAnalysisUsage, and then use > getAnalysis<LoopInfo> in runOnFunction(). It worked OK. > Now I want to have a module pass to traverse the functions, and > similarly I want to have to loop information of the functions. When I >
2011 Mar 03
0
[LLVMdev] how can I have LoopInfo in a module pass?
I think this assertion failure may be caused by the getAnalysisUsage(). Mine is like the following: class myclass : public ModulePass{ ... virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<LoopInfo>(); } ... } Is it enough? Thanks! Best, --Wenbin ----- Original Message ----- From: Wenbin Zhang To: John Criswell Cc: llvmdev at
2008 Nov 30
3
[LLVMdev] Error when using getAnalysis
Hi, I'm trying to use the function getAnalysis. This is the code I'm using : void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<LoopInfo>(); AU.setPreservesAll(); } virtual bool runOnModule(Module &M) { LoopInfo &LI = getAnalysis<LoopInfo>(); } I get following error when I try to run my pass : opt:
2011 Jun 20
2
[LLVMdev] run -mem2reg and -reg2mem programmably from within a Pass
I am currently building a BasicBlock pass which requires to run -reg2mem before it, and need to run -mem2reg after it to clean up. So, I want to specify -reg2mem as one of the pre-requisite passes to it, as: class MyPass: public BasicBlockPass{ virtual void getAnalysisUsage(AnalysisUsage &AU){ ... AU.addRequired<RegToMem>(); ... } }; I searched all passes under
2009 May 08
3
[LLVMdev] problem with analysis required
Hello, I was trying to get the loop info in a module pass to be able to iterate over the loops int the module itself. Since my pass requires to make module level changes including adding new types to module hence a looppass cannot be used here. I am getting the following error on running opt. opt: /root/llvm-2.4/include/llvm/PassAnalysisSupport.h:199: AnalysisType&
2017 Jan 26
2
AAResultsWrapperPass assertion in 3.9
Hi, Migrating from 3.5 to 3.9. There is a module pass that uses alias analysis started breaking at runtime: llvm/lnx64/llvm/include/llvm/PassAnalysisSupport.h:236: AnalysisType& llvm::Pass::getAnalysisID(llvm::AnalysisID) const [with AnalysisType = llvm::AAResultsWrapperPass; llvm::AnalysisID = const void*]: Assertion `ResultPass && "getAnalysis*() called on an analysis that was
2008 Dec 01
0
[LLVMdev] Error when using getAnalysis
nitisha warkari wrote: > Hi, > > I'm trying to use the function getAnalysis. This is the code I'm using : > > void getAnalysisUsage(AnalysisUsage &AU) const { > AU.addRequired<LoopInfo>(); > AU.setPreservesAll(); > } > > virtual bool runOnModule(Module &M) { > LoopInfo &LI = getAnalysis<LoopInfo>(); > >