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>();
>
>