search for: dominator

Displaying 20 results from an estimated 2540 matches for "dominator".

2017 Jun 13
2
RFC: Dynamic dominators
...ance and make it (freely) available everywhere. Is this > covered by your current (or planned) work? I'm not sure what you exactly mean by one shot; I'll ask around tomorrow. I wanted to play a little bit with your work, but run in some issues: > > bin/llvm-as ../test/Analysis/Dominators/2007-07-11-SplitBlock.ll > > bin/dominators -to-graph ../test/Analysis/Dominators/2007-07-11-SplitBlock.bc > | tee graph > p 5 5 1 1 > a 1 3 > a 1 5 > a 2 3 > a 3 2 > a 3 4 > e > > bin/dominators graph > Unknown file format for graph > Invalid input graph...
2015 Feb 25
4
[LLVMdev] Jump Theading/GVN bug - moving discussion to llvm-dev
>> all the zero paths from entry to %a pass by %b. > > > That is a graph-wise definition, sure. > So, this is an interesting definition, and maybe this is part of the source > of the problem. > > For SSA, at least GCC requires that both "definition block dominates use > block" (which would be true here), *and* > that "definition appears before use in
2013 Nov 15
2
[LLVMdev] dominator, post-dominator and memory leak
Hi Henrique, I have tried using -mergereturn and inserting a free into the predecessors of dominance frontier of malloc block and it caused double free. It is possible for multiple free's to be inserted on the path from malloc to an exit. For example, in the following CFG: BB10 (malloc) / \ BB11 BB12 ... / \ / \
2013 Nov 15
0
[LLVMdev] dominator, post-dominator and memory leak
Try breaking the critical edges (-break-crit-edges). This way, a new block will be created between BB13 and BB11 (call this BB11.break) and BB15 and BB12 (call this BB12.break). The predecessors of the dominance frontier will, thus, be BB11.break, BB12.break, and BB14. When we enter through a block with a call to malloc(), we will end up in one of the blocks in the dominance frontier (kind of).
2017 Aug 26
2
building release_50 with gcc7.2.0 on MacOS: duplicate symbol llvm::DominatorTreeBase
...VMAnalysis.a ../../lib/libLLVMObject.a ../../lib/libLLVMMCParser.a ../../lib/libLLVMMC.a ../../lib/libLLVMBitReader.a ../../lib/libLLVMProfileData.a ../../lib/libLLVMCore.a ../../lib/libLLVMBinaryFormat.a ../../lib/libLLVMSupport.a -lcurses -lz -lm ../../lib/libLLVMDemangle.a duplicate symbol llvm::DominatorTreeBase<llvm::BasicBlock, true>::releaseMemory() in: ../../lib/libLLVMAnalysis.a(PostDominators.cpp.o) ../../lib/libLLVMCore.a(Dominators.cpp.o) duplicate symbol llvm::DominatorTreeBase<llvm::BasicBlock, true>::verify() const in: ../../lib/libLLVMAnalysis.a(PostDominators...
2017 Apr 26
1
Collectively dominance
...gt; to n goes through d. >> This means for anything to collectively dominate a node, it either must: >> Be be in the idom tree (ie so that the above is definitely true) >> or cover every path into the block. >> >> The only way to cover every path is to cover at least a dominator of all >> of the predecessors. >> >> This would guarantee that collectively, every path to the predecessor >> must go through the set. >> >> Note that this definition is recursive, actually, so while the algorithm >> i gave covers most examples. >> Fo...
2017 Apr 26
2
Collectively dominance
...ery path from root > to n goes through d. > This means for anything to collectively dominate a node, it either must: > Be be in the idom tree (ie so that the above is definitely true) > or cover every path into the block. > > The only way to cover every path is to cover at least a dominator of all > of the predecessors. > > This would guarantee that collectively, every path to the predecessor must > go through the set. > > Note that this definition is recursive, actually, so while the algorithm i > gave covers most examples. > For any block with multiple predec...
2009 Aug 24
2
[LLVMdev] Post-dominance analysis for multiple-exit functions
Many published analyses which build on post-dominance assume a canonical single-dominator-tree form induced by unifying all exits (and often adding a virtual edge from START to END). In contrast, it seems that the current LLVM post-dominator analysis only operates in a mode in which it generates a forest of post-dominator trees, with one rooted at each exit node. The problem this can ca...
2015 Sep 21
4
When can the dominator tree not contain a node for a basic block?
When looking into https://llvm.org/bugs/show_bug.cgi?id=24866, I discovered that the root cause of the crash is that I was expecting every basic block to have a corresponding Node in the dominator tree. Apparently, the "while.end" basic block in the example does not have a Node in the Dominator Tree. Can anyone tell me if this is expected? If so, under what circumstances? Interestingly, the crash in question appears to be fairly recently introduced. A checkout from week b...
2009 Jun 02
3
[LLVMdev] Is there a control dependence graph builder?
Hi, In browsing through the LLVM source, I don't currently see an implementation for a control dependence graph builder. Am I overlooking something? It doesn't look like LLVM currently provides a way to build the post-dominance frontier of the reverse CFG, either. Dominators.h mentions forward dominators, but I believe all this is referring to is dominators as opposed to post-dominators, not dominators on the CFG versus dominators on the reverse-CFG. I just wanted to make certain I'm not overlooking anything before I decide if I want to go off and build this myse...
2015 Feb 25
2
[LLVMdev] Jump Theading/GVN bug - moving discussion to llvm-dev
On 25 February 2015 at 10:58, Daniel Berlin <dberlin at dberlin.org> wrote: > > > On Wed, Feb 25, 2015 at 6:26 AM, Rafael EspĂ­ndola > <rafael.espindola at gmail.com> wrote: >> >> > Maybe. >> > My view is the ideal is either no-unreachable code, or unreachable >> > blocks >> > only contain terminators. >> >> I am
2017 Jun 13
2
RFC: Dynamic dominators
Btw, here is another interesting paper about post-dominators and control dependence: https://pdfs.semanticscholar.org/cbb2/9a0e4895025bd9df24f9263217df12f1ed1e.pdf I think a great outcome of your internship would be some precise documentation regarding the guarantees the LLVM dominators give -- possibly also considering classic and weak control dependence...
2015 May 14
4
[LLVMdev] getnode(BB) = 0; block already in dominator tree
Hi I run into an issue as part of splitting a critical edge during LICM. When a new basic block is created and needs to be added into the dominator tree, the block is already in the dominator tree. I print the dominator tree and I see it is added into the tree as child of node it is supposed to dominate. How do I debug to find out why/when its getting added into the tree. ? Tips/suggestions on how to debug to find out how the densemap involve...
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 ha...
2017 Apr 26
2
Collectively dominance
On Tue, Apr 25, 2017 at 6:32 PM, Daniel Berlin <dberlin at dberlin.org> wrote: > > > On Tue, Apr 25, 2017 at 6:17 PM, Hongbin Zheng <etherzhhb at gmail.com> > wrote: > >> Hi Daniel, >> >> I mean "*As a set*, B + C dominate D". >> >> On Tue, Apr 25, 2017 at 5:42 PM, Daniel Berlin <dberlin at dberlin.org> >> wrote:
2013 Nov 13
3
[LLVMdev] dominator, post-dominator and memory leak
Hi Henrique, Thanks for the quick reply! On Tue, Nov 12, 2013 at 9:13 PM, Henrique Santos < henrique.nazare.santos at gmail.com> wrote: > PRE normally uses a latest placement algorithm to do something of the sort. > I don't know about GVN/PRE, but older version of PRE might have it. > Just placing the calls to free at the predecessors (dominated by BB12) of > the dominance
2013 Nov 13
0
[LLVMdev] dominator, post-dominator and memory leak
> > It seems that placing the calls to free at the predecessors of dominance > frontier is inadequate. It is possible that there are exit blocks that are > dominated by BB12 (calls to malloc). I guess we can also insert calls to > free at these exit blocks too. That crossed my mind a few minutes later. : ) If you're interested, PRE.cpp existed last at r25315. It calculates the
2017 Apr 26
2
Collectively dominance
Hi, Is there any way to quickly test if a set of basic block collectively dominate another basic block? Thanks Hongbin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170425/b9336a6d/attachment.html>
2017 Jun 13
9
RFC: Dynamic dominators
Hi folks, This summer I'm working on improving dominators during my internship at Google. Below is an RFC on switching to dynamic dominators, which you can also read as a Google Doc <https://docs.google.com/document/d/1wPYeWykeO51YDPLYQEg4KNTlDIGIdyF65OTfhSMaNHQ/edit?usp=sharing> if you prefer so. Please let us know what you think. ~Kuba ========...
2009 Aug 25
0
[LLVMdev] Post-dominance analysis for multiple-exit functions
On Aug 24, 2009, at 4:58 PM, Jonathan Ragan-Kelley wrote: > Many published analyses which build on post-dominance assume a > canonical single-dominator-tree form induced by unifying all exits > (and often adding a virtual edge from START to END). In contrast, it > seems that the current LLVM post-dominator analysis only operates in a > mode in which it generates a forest of post-dominator trees, with one > rooted at each exit node. The...