Home | History | Annotate | Download | only in IR

Lines Matching refs:dominates

78 // dominates - Return true if Def dominates a use in User. This performs
81 bool DominatorTree::dominates(const Instruction *Def,
98 // The value defined by an invoke dominates an instruction only if
99 // it dominates every instruction in UseBB.
100 // A PHI is dominated only if the instruction dominates every possible use
103 return dominates(Def, UseBB);
106 return dominates(DefBB, UseBB);
117 // note that dominates(Def, Def->getParent()) is false.
118 bool DominatorTree::dominates(const Instruction *Def,
135 return dominates(DefBB, UseBB);
141 return dominates(E, UseBB);
144 bool DominatorTree::dominates(const BasicBlockEdge &BBE,
155 if (!dominates(End, UseBB))
159 // dominates the use block implies that the edge also does.
164 // like to do is split it and check if the new block dominates the use.
179 // dominates all of NormalDest's predecessors (X, B, C in the example). X
180 // trivially dominates itself, so we only have to find if it dominates the
182 // only properly dominate a node if NormalDest dominates that node too.
189 if (!dominates(End, BB))
195 bool DominatorTree::dominates(const BasicBlockEdge &BBE, const Use &U) const {
208 // Otherwise use the edge-dominates-block query, which
215 return dominates(BBE, UseBB);
218 bool DominatorTree::dominates(const Instruction *Def, const Use &U) const {
247 return dominates(E, U);
253 return dominates(DefBB, UseBB);
256 // doesn't dominate anything in the block. If it's a PHI, it dominates