search for: defbb

Displaying 6 results from an estimated 6 matches for "defbb".

2015 Feb 25
4
[LLVMdev] Jump Theading/GVN bug - moving discussion to llvm-dev
.... > > The code is, IMHO, not even self-consistent > > > // Any unreachable use is dominated, even if Def == User. > if (!isReachableFromEntry(UseBB)) > return true; > > // Unreachable definitions don't dominate anything. > if (!isReachableFromEntry(DefBB)) > return false; > > > > Riddle me this: If unreachable definitions dominate nothing, how are > unreachable uses always dominated by their unreachable defs? I think the comment is just just missing an "otherwise" at the start. If we were to define dominance rules...
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
2014 May 15
4
[LLVMdev] SROA is slow when compiling a large basic block
...e whether we hit 'B' or the end first. for (BasicBlock::const_iterator I = A, E = BB->end(); I != E; ++I) { if (&*I == B) return true; } DominatorTree::dominates // Loop through the basic block until we find Def or User. BasicBlock::const_iterator I = DefBB->begin(); for (; &*I != Def && &*I != User; ++I) /*empty*/; 5. Simply give up doing SROA (and GVN::processLoad) if there is a huge basic block that can potentially take a long time to compile. -------------- next part -------------- An HTML attachment was scrubbed... URL...
2014 May 15
2
[LLVMdev] SROA is slow when compiling a large basic block
...(BasicBlock::const_iterator I = A, E = BB->end(); I != E; ++I) { > > if (&*I == B) > > return true; > > } > > DominatorTree::dominates > > // Loop through the basic block until we find Def or User. > > BasicBlock::const_iterator I = DefBB->begin(); > > for (; &*I != Def && &*I != User; ++I) > > /*empty*/; > > I'd be curious to see a proposal here. I've been bitten by the > DT::dominates issue myself. > > > I was hesitant to make changes in classes such as BasicBlock and...
2015 Feb 25
0
[LLVMdev] Jump Theading/GVN bug - moving discussion to llvm-dev
...en self-consistent >> >> >> // Any unreachable use is dominated, even if Def == User. >> if (!isReachableFromEntry(UseBB)) >> return true; >> >> // Unreachable definitions don't dominate anything. >> if (!isReachableFromEntry(DefBB)) >> return false; >> >> >> >> Riddle me this: If unreachable definitions dominate nothing, how are >> unreachable uses always dominated by their unreachable defs? > I think the comment is just just missing an "otherwise" at the start. > &gt...
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?