similar to: [LLVMdev] PassManager Mysteries

Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] PassManager Mysteries"

2008 Jan 29
0
[LLVMdev] PassManager Mysteries
On Jan 28, 2008, at 4:27 PM, David Greene wrote: > I've never been able to figure this one out: > > llvm/lib/VMCore/PassManager.cpp:938: virtual void > llvm::PMDataManager::addLowerLevelRequiredPass(llvm::Pass*, > llvm::Pass*): > Assertion `0 && "Unable to handle Pass that requires lower level > Analysis > pass"' failed. > > In the past,
2009 Mar 09
1
[LLVMdev] Patch: PassManager should call add() instead of addLowerLevelRequiredPass()
Hello, LLVM asserts in the following scenario. Say there are three passes: A, B, C. C requires A and B; B requires A; and B does not preserve A. A valid pass ordering would be A B A C. However, opt gives the following assertion: $ opt -load libPassTest.so foo.bc -f -o /dev/null -c -debug-pass=Structure opt: /u/loc/kevin/llvm/llvm/lib/VMCore/PassManager.cpp:1424: virtual void
2008 Jan 29
4
[LLVMdev] PassManager Mysteries
On Monday 28 January 2008 09:31:11 pm Owen Anderson wrote: > From experience, an important point that is often forgotten is that > the order of declaration of dependencies matter. If you declare that > you require pass A, and then pass B, and B doesn't preserve A, you'll > get an error like this. > > Just some advice from having had similar problems in the past.
2007 Jul 25
2
[LLVMdev] PassManager Error
Can anyone explain what this means? llvm/include/llvm/PassManagers.h:232: virtual void llvm::PMDataManager::addLowerLevelRequiredPass(llvm::Pass*, llvm::Pass*): Assertion `0 && "Unable to handle Pass that requires lower level Analysis pass"' failed. -Dave
2008 Jun 02
2
[LLVMdev] want to use CallGraph Pass in llc
Hi all, the CallGraph pass is only available in opt. Is there any substantial reason for that? Or is it only because it seems not to be useful for llc? I want to use it in an backend that is derived from the CBackend. I need the information what functions are called in every other function to build communication struktures between the functions. The backend is generating VHDL from C code.
2008 Jan 29
4
[LLVMdev] PassManager Mysteries
On Jan 28, 2008, at 6:38 PM, Devang Patel wrote: >> >> So what does this assert mean, exactly? > > In simple word, pass manager is unable to fulfill your request. Can you explain this one in complex words then? :^) I've encountered the same problem. --Vikram -------------- next part -------------- An HTML attachment was scrubbed... URL:
2009 Jan 16
1
[LLVMdev] poolallocation error
Hi all, I too am getting this error for x86_64 when I am trying to use the Data Structure Analysis ...I svn upped both the llvm main branch and the poolalloc today in the morning and recompiled everything from scratch : $ opt -load /home/pprabhu/llvm/llvm-install-x86-64/lib/libpoolalloc.so -ds-aa < o.bc opt: /home/pprabhu/llvm/llvm/lib/VMCore/PassManager.cpp:1418: virtual void
2009 Jan 19
0
[LLVMdev] poolallocation error
Dear Prakash, Yes, DSA is still in active use, although nobody else uses the -ds-aa pass as far as I know. I tried the below sample (although ds-aa should be in libLLVMDataStructure.so and not libpoolalloc.so), and I get the same error. I've seen similar problems with other passes in our work here. My guess is that -ds-aa is requiring two passes that claim to invalidate each other; this
2009 Jan 21
1
[LLVMdev] poolallocation error
Dear Prakash, I believe I've fixed the problem you were having with ds-aa. Please update your poolalloc tree, recompile, and let me know if it works. -- John T. Criswell, John T wrote: > [snip] > > ________________________________________ > From: llvmdev-bounces at cs.uiuc.edu [llvmdev-bounces at cs.uiuc.edu] On Behalf Of Prakash Prabhu [prakash.prabhu at gmail.com] > Sent:
2011 May 03
4
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
When migrating my project to 2.9, I've encountered a strange segfault where if a ModulePass's getAnalysisUsage adds LoopInfo and DominatorTree, then llvm::PMTopLevelManager::findAnalysisUsage will segfault. What's odd is that if I rearrange this (add required for DominatorTree before LoopInfo), it does not segfault. I realize that LoopInfo requires and preserves DominatorTree, but this
2008 Nov 19
2
[LLVMdev] poolallocation error
Hi, I am trying to use the poolallocator. More specific, I am trying to play around with the pointer compression pass. Though, I get assertion failures for the pass dependencies. This is when it in PointerCompress::getAnalysisUsage tries to register the the BU pass as required. I.e. when AU.addRequired<CompleteBUDataStructures>(); is called. $ opt -f -load
2009 Jan 23
0
[LLVMdev] Possible bug in PassManager - Higher pass requires lower pass
Hello all, I've noticed that whenever a ``higher'' pass requires a ``lower'' pass, an assert *always* fails in the pass manager. I believe the correct behavior is to not schedule the lower pass, but instead run it when the higher pass calls getAnalysis<>(). Consider, for instance, this test case: #include "llvm/Pass.h" #include
2011 May 04
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
Hi Michael, > When migrating my project to 2.9, I've encountered a strange segfault > where if a ModulePass's getAnalysisUsage adds LoopInfo and > DominatorTree, then llvm::PMTopLevelManager::findAnalysisUsage will > segfault. I suggest you build LLVM with assertions enabled - then you should get a helpful error message rather than a segfault. I think you are not allowed to
2011 May 04
2
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
Thanks for the response. I do have assertions enabled, and none of them are getting hit. I did do a search of the mailing list for the past year (approximately) before writing my email, and what I found was that you should be allowed to use LoopInfo and other analysis function passes from a module pass, with the only difference being that getAnalysis is passed the function. The example code I
2016 Mar 21
2
[Inliner] Loop info in the inliner
Hi,It seems inliner does not take into account if a call is inside a loop. I'm trying to figure out if loop-info can be made available to the inliner. When I try to add LoopInfoWrapperPass to Inliner.cpp, diff --git a/llvm/lib/Transforms/IPO/Inliner.cpp b/llvm/lib/Transforms/IPO/Inliner.cppindex 568707d..cb51ea8 100644--- a/llvm/lib/Transforms/IPO/Inliner.cpp+++
2007 Jul 25
0
[LLVMdev] PassManager Error
On Jul 25, 2007, at 3:15 PM, David A. Greene wrote: > Can anyone explain what this means? > > llvm/include/llvm/PassManagers.h:232: virtual void > llvm::PMDataManager::addLowerLevelRequiredPass(llvm::Pass*, > llvm::Pass*): > Assertion `0 && "Unable to handle Pass that requires lower level > Analysis > pass"' failed. In simple words, pass manager
2011 May 04
0
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
Hi Michael, hi Duncan, yesterday I stumbled over something that might be related. At least I could also just be doing some initialization wrong or something in this direction... In my case, I hit a segfault in PassInfo::isAnalysisGroup() after PassManager.add(myModulePass) is called. My setup seems fairly simple, the attached code should reproduce the error. Compile with g++ test.cpp
2009 Feb 12
0
[LLVMdev] DominatorTree Information required in CallGraphPass
On Feb 11, 2009, at 6:05 PM, kapil anand wrote: > Hi all, > > I am implementing a new pass for LLVM which extends Call Graph > SCCPass. I need DominatorTree Information when I get to individual > function. I have added AU.addrequired<DominatorTree>() and > AU.addRequired<DominanceFrontier>() in getAnalysisUsage() function. > > But, when I get to the pass,
2011 May 04
1
[LLVMdev] 2.9 segfault when requesting for both LoopInfo and DominatorTree analyses.
Your constructor is not calling initializeTestMPPass(), and you're using RegisterPass which I think was deprecated in favor of INITIALIZE_PASS. You can look at, for example, lib/Transforms/Scalar/IndVarSimplify.cpp for examples of how to initialize, e.g. having "INITIALIZE_PASS_DEPENDENCY(LoopInfo)" sandwiched between BEGIN and END. Note that you'll want a forward declaration of
2009 Jun 10
1
[LLVMdev] Dependency graphs supported by the pass manager
Hi all: I apologize if this is a stupid question, but I haven't found a direct statement of what kinds of requirements the Pass Manager imposes on pass dependency graphs. I found a number of bug reports related to unschedulable passes (e.g. "Unable to schedule pass" asserts from the pass manager), but it isn't always clear if these are true bugs in the scheduling algorithm