Lines Matching defs:CHI

19 // data structure (CHI nodes) to keep track of values flowing out of a basic
127 // CHI keeps information about values flowing out of a basic block. It is
131 // A (CHI[{V, B, I1}, {V, C, I2}]
135 // The Value number for both I1 and I2 is V, the CHI node will save the
143 // The instruction (VN) which uses the values flowing out of CHI.
343 // Check if it is safe to hoist values tracked by CHI in the range
358 // store the last value you see. When you hit a CHI from a given edge, the
360 // CHI and pop.
375 // Fill outgoing values in each CHI corresponding to BB.
380 // Walk all the CHI-nodes to find ones which have a empty-entry and remove
409 // - Remove values from CHI-nodes which do not truly flow out, e.g.,
441 // Insert empty CHI node for this VN. This is used to factor out
449 LLVM_DEBUG(dbgs() << "\nInserting a CHI for BB: "
456 // Insert CHI args at each PDF to iterate on factored graph of
459 // Using the CHI args inserted at each PDF, find fully anticipable values.
749 return false; // Not enough args in this CHI.
751 for (auto CHI : C) {
753 if (!llvm::is_contained(successors(TI), CHI.Dest))
763 for (auto CHI : C) {
764 Instruction *Insn = CHI.I;
765 if (!Insn) // No instruction was inserted in this CHI.
768 // value (such as InvokeInst, CallBrInst, or CatchSwitchInst) which the CHI
774 Safe.push_back(CHI);
778 Safe.push_back(CHI);
800 // For each *predecessor* (because Post-DOM) of BB check if it has a CHI
807 // A CHI is found (BB -> Pred is an edge in the CFG)
814 // The Basic Block where CHI is must dominate the value we want to
815 // track in a CHI. In the PDom walk, there can be values in the
825 // Move to next CHI of a different value