Lines Matching refs:dominates
77 // dominates - Return true if Def dominates a use in User. This performs
80 bool DominatorTree::dominates(const Instruction *Def,
97 // The value defined by an invoke dominates an instruction only if
98 // it dominates every instruction in UseBB.
99 // A PHI is dominated only if the instruction dominates every possible use
102 return dominates(Def, UseBB);
105 return dominates(DefBB, UseBB);
116 // note that dominates(Def, Def->getParent()) is false.
117 bool DominatorTree::dominates(const Instruction *Def,
134 return dominates(DefBB, UseBB);
140 return dominates(E, UseBB);
143 bool DominatorTree::dominates(const BasicBlockEdge &BBE,
154 if (!dominates(End, UseBB))
158 // dominates the use block implies that the edge also does.
163 // like to do is split it and check if the new block dominates the use.
178 // dominates all of NormalDest's predecessors (X, B, C in the example). X
179 // trivially dominates itself, so we only have to find if it dominates the
181 // only properly dominate a node if NormalDest dominates that node too.
188 if (!dominates(End, BB))
194 bool DominatorTree::dominates(const BasicBlockEdge &BBE, const Use &U) const {
207 // Otherwise use the edge-dominates-block query, which
214 return dominates(BBE, UseBB);
217 bool DominatorTree::dominates(const Instruction *Def, const Use &U) const {
246 return dominates(E, U);
252 return dominates(DefBB, UseBB);
255 // doesn't dominate anything in the block. If it's a PHI, it dominates