Lines Matching defs:Term
110 bool DivergenceAnalysis::updateTerminator(const Instruction &Term) const {
111 if (Term.getNumSuccessors() <= 1)
113 if (auto *BranchTerm = dyn_cast<BranchInst>(&Term)) {
117 if (auto *SwitchTerm = dyn_cast<SwitchInst>(&Term)) {
120 if (isa<InvokeInst>(Term)) {
305 void DivergenceAnalysis::propagateBranchDivergence(const Instruction &Term) {
306 LLVM_DEBUG(dbgs() << "propBranchDiv " << Term.getParent()->getName() << "\n");
308 markDivergent(Term);
311 if (!DT.isReachableFromEntry(Term.getParent()))
314 const auto *BranchLoop = LI.getLoopFor(Term.getParent());
319 // iterate over all blocks reachable by disjoint from Term within the loop
320 // also iterates over loop exits that become divergent due to Term.
321 for (const auto *JoinBlock : SDA.join_blocks(Term)) {
325 // Branch loop is a divergent loop due to the divergent branch in Term