search for: postdominatortree

Displaying 20 results from an estimated 61 matches for "postdominatortree".

2018 Apr 12
2
Error: Verify if there is a pass dependency cycle
Hi everyone, I write a new FunctionPass which wants to use pass PostDominatorTree, so I implement the next function: void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<PostDominatorTree>(); AU.setPreservesAll(); } Then I get PDT through the next statement: PostDominatorTree *PDT = &getAnalysis<PostDominatorTree>(); My code can be...
2018 Apr 14
0
Error: Verify if there is a pass dependency cycle
Hi, You need to initialize your pass with: INITIALIZE_PASS_BEGIN(YourPass, "your-pass", "Your Pass", /*cfgonly=*/false, /*analysis=*/false) INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass) INITIALIZE_PASS_END(YourPass, "your-pass", "Your Pass", /*cfgonly=*/false, /*analysis=*/false) So as to both register your pass, and have PostDominatorTreeWrapperPass (which is the Analysis pass in charge of creating the PostDominatorTree) initialized before your pa...
2010 Mar 07
0
[LLVMdev] findNearestCommonDominator for PostDominatorTree
...son? I would think it's just > > inline BasicBlock *findNearestCommonDominator(BasicBlock *A, BasicBlock > *B) { > return DT->findNearestCommonDominator(A, B); > } > > like for llvm::DominatorTree. Is it possible to add it? It was probably just not added, as the PostDominatorTree is not used a lot at the moment. I added it. It is a trivial change. http://llvm.org/viewvc/llvm-project?rev=97915&view=rev It should just work, as the code paths are the same for both Dominator and PostDominatorTree in this case. In general the PostDominatorTree works well. I use it for t...
2010 Aug 05
1
[LLVMdev] a problem when using postDominatorTree
...al Message ----- > From: "Tobias Grosser" <grosser at fim.uni-passau.de> > To: "Wenbin Zhang" <zhangwen at cse.ohio-state.edu> > Cc: <llvmdev at cs.uiuc.edu> > Sent: Thursday, August 05, 2010 3:07 AM > Subject: Re: [LLVMdev] a problem when using postDominatorTree > > > >> On 08/05/2010 06:46 AM, Wenbin Zhang wrote: >> >>> Hi all, >>> I'm using postDominatorTree to do some program analysis. My code works >>> well for small tests, but when I run it on real applications, the >>> following err...
2010 Aug 05
0
[LLVMdev] a problem when using postDominatorTree
..., --Wenbin ----- Original Message ----- From: "Tobias Grosser" <grosser at fim.uni-passau.de> To: "Wenbin Zhang" <zhangwen at cse.ohio-state.edu> Cc: <llvmdev at cs.uiuc.edu> Sent: Thursday, August 05, 2010 3:07 AM Subject: Re: [LLVMdev] a problem when using postDominatorTree > On 08/05/2010 06:46 AM, Wenbin Zhang wrote: >> Hi all, >> I'm using postDominatorTree to do some program analysis. My code works >> well for small tests, but when I run it on real applications, the >> following error occurs: >> /Inorder PostDominator Tree: D...
2010 Aug 05
3
[LLVMdev] a problem when using postDominatorTree
On 08/05/2010 06:46 AM, Wenbin Zhang wrote: > Hi all, > I'm using postDominatorTree to do some program analysis. My code works > well for small tests, but when I run it on real applications, the > following error occurs: > /Inorder PostDominator Tree: DFSNumbers invalid: 0 slow queries. > [1] <<exit node>> {0,21} > [2] %bb1 {1,2} > [2] %bb {3,4} &gt...
2020 Jan 07
2
Let CallGraphSCCPass Use Function-Level Analysis
Dear all, I would like to use the PostDominatorTree in ArgPromotion. I did not find an example of how to use function level analysis inside CallGraphSCCPass. I tried to follow an example of how to use function-level pass in a module pass, but I hit "llvm_unreachable" in PMDataManager::addLowerLevelRequiredPass. What would be a proper way...
2010 Aug 05
0
[LLVMdev] a problem when using postDominatorTree
Hi all, I'm using postDominatorTree to do some program analysis. My code works well for small tests, but when I run it on real applications, the following error occurs: Inorder PostDominator Tree: DFSNumbers invalid: 0 slow queries. [1] <<exit node>> {0,21} [2] %bb1 {1,2} [2] %bb {3,4} [2] %entry {5,6}...
2017 Jul 17
2
An update on the DominatorTree and incremental dominators
Hi folks, For the past month I’ve been working on improving the DominatorTree and PostDominatorTree in LLVM. The RFC that explains the motivations and plans can be found here: http://lists.llvm.org/pipermail/llvm-dev/2017-June/114045.html . Here’s a short summary of what changed upstream since posting it: - We switched from the Simple Lengauer-Tarjan algorithm for computing dominators...
2010 Aug 05
0
[LLVMdev] a problem when using postDominatorTree
On 08/05/2010 06:00 PM, John Criswell wrote: > Wenbin Zhang wrote: >> I'll try the trunk, as well as check my code again. If indeed it's not >> fixed, I'll try to post a triggering case here. >> Thanks for the advice~ >> > > Did you run the -mergereturn pass (it might also be called > UnifyExitNodes in the source code)? This is the pass that ensures
2020 Jan 07
2
Let CallGraphSCCPass Use Function-Level Analysis
Hi Mikhail, As Brian noted, stuff like this works better in the new pass manager. Even in the old pass manager I thought it should work though. Did you initialize the pass, via `INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass)`? Did you require it, via ` AU.addRequired<PostDominatorTreeWrapperPass>();`? Btw. May I ask what you are planning to do? Cheers, Johannes On 01/07, Brian Gesiak via llvm-dev wrote: > Hello! The new pass manager provides analysis proxies from one IR unit > type to ano...
2009 May 30
2
[LLVMdev] Post-dominator data.
This is surely a simple question, but it appears that PostDominatorTree does not provide an interface to get at post dominator data. Also, it is not a concrete subclass of DominatorTree, as is presented in the doxygen page and the commented source. Any way to get post-dom data without hacking it into PostDominatorTree?
2009 Jul 10
0
[LLVMdev] Unnamed pass in on the fly pass manager
Update: the "unnamed pass" is PostDominatorTree. My module pass requires PDT (specified in its getAnalysisUsage). When it visits a function, it calls getAnalysis<PostDominatorTree>(), which triggers the failed assertion "getAnalysis*() called on an analysis that was not 'required' by pass!" This issue has been addressed...
2010 Mar 08
2
[LLVMdev] findNearestCommonDominator
On 03/07/2010 10:33 PM, Jochen Wilhelmy wrote: > Hi! Hi Jochen, > I have seen that findNearestCommonDominator has been added > to class PostDominatorTree, maybe on my request. > > Now there is the following problem: > in class DominatorTreeBase there is an assert in findNearestCommonDominator > that asserts if the tree is not a PostDominator tree: > > assert (!this->isPostDominator() > && "This...
2009 Jul 09
2
[LLVMdev] Unnamed pass in on the fly pass manager
I have written a module pass. When I use the debug pass structure option, the name of my module pass is printed but then I get "Unnamed pass" when the FunctionPassManagerImpl *FPP calls dumpPassStructure (in PassManager.cpp). Is this the expected behavior, or should I be concerned that there is an error in my approach? Thanks, Scott
2010 Mar 06
3
[LLVMdev] constness of APFloat::toString
Hi! I wonder if llvm::APFloat::toString() can be const since it should not modify the APFloat. -Jochen
2009 Jul 10
1
[LLVMdev] Unnamed pass in on the fly pass manager
...ed... For the record, there were two issues: 1) I was not passing the Function to getAnalysis for the PDT. 2) I was attempting to getAnalysis on external functions. On Thu, Jul 9, 2009 at 5:49 PM, Scott Ricketts<sricketts at maxentric.com> wrote: > Update: the "unnamed pass" is PostDominatorTree. My module pass > requires PDT (specified in its getAnalysisUsage). When it visits a > function, it calls getAnalysis<PostDominatorTree>(), which triggers > the failed assertion "getAnalysis*() called on an analysis that was > not 'required' by pass!" > > T...
2013 Apr 12
0
[LLVMdev] Control Dependence Graph builder
...believe that is primarily because control dependence is very easy to compute with the existing analysis passes in LLVM. With PostDominanceFrontier, it was extremely simple (I think it was calling two methods in the PostDominanceFrontier pass). It might be slightly more work to compute it with PostDominatorTree, but not significantly. And, IIRC, you'll want to use PostDominatorTree instead of DominatorTree. For control dependence, I believe you essentially flip the CFG upside-down and compute the dominance frontier. Using post dominators instead of dominators does the same thing and is describ...
2015 Jul 09
5
[LLVMdev] Strong post-dominance in LLVM?
There is PostDominatorTree for determining post-dominance. Even if A post-dominates B and B is executed, that doesn't guarantee that A will be executed. For example, there could be an infinite loop in-between. Strong post-dominance makes the stronger guarantee that there will be no infinite loop from B to A. Do we have a...
2013 Apr 12
2
[LLVMdev] Control Dependence Graph builder
Thank you John. Actually the opt tool (from LLVM 3.2 version) can generate the needed graphs (with pass "-domfrontier"). But I just want to surely know is there some pass or builder which can be integrated somehow so it will be possible directly to generate CDG? -- View this message in context: http://llvm.1065342.n5.nabble.com/Control-Dependence-Graph-builder-tp56687p56689.html Sent