Lines Matching defs:CHI

19 // data structure (CHI nodes) to keep track of values flowing out of a basic
128 // CHI keeps information about values flowing out of a basic block. It is
132 // A (CHI[{V, B, I1}, {V, C, I2}]
136 // The Value number for both I1 and I2 is V, the CHI node will save the
144 // The instruction (VN) which uses the values flowing out of CHI.
344 // Check if it is safe to hoist values tracked by CHI in the range
359 // store the last value you see. When you hit a CHI from a given edge, the
361 // CHI and pop.
376 // Fill outgoing values in each CHI corresponding to BB.
381 // Walk all the CHI-nodes to find ones which have a empty-entry and remove
410 // - Remove values from CHI-nodes which do not truly flow out, e.g.,
442 // Insert empty CHI node for this VN. This is used to factor out
450 LLVM_DEBUG(dbgs() << "\nInserting a CHI for BB: "
457 // Insert CHI args at each PDF to iterate on factored graph of
460 // Using the CHI args inserted at each PDF, find fully anticipable values.
750 return false; // Not enough args in this CHI.
752 for (auto CHI : C) {
754 if (!llvm::is_contained(successors(TI), CHI.Dest))
764 for (auto CHI : C) {
765 Instruction *Insn = CHI.I;
766 if (!Insn) // No instruction was inserted in this CHI.
769 // value (such as InvokeInst, CallBrInst, or CatchSwitchInst) which the CHI
775 Safe.push_back(CHI);
779 Safe.push_back(CHI);
801 // For each *predecessor* (because Post-DOM) of BB check if it has a CHI
808 // A CHI is found (BB -> Pred is an edge in the CFG)
815 // The Basic Block where CHI is must dominate the value we want to
816 // track in a CHI. In the PDom walk, there can be values in the
826 // Move to next CHI of a different value