Lines Matching defs:HoistPt

302   // Decrement by 1 NBBsOnAllPaths for each block between HoistPt and BB, and
308 // Return true when there are exception handling between HoistPt and BB.
309 // Decrement by 1 NBBsOnAllPaths for each block between HoistPt and BB, and
312 bool hasEHOnPath(const BasicBlock *HoistPt, const BasicBlock *SrcBB,
464 // HoistPt. When limiting the number of hoisted expressions, one could hoist
468 const BasicBlock *HoistPt) const;
472 const BasicBlock *HoistPt) const;
475 void makeGepsAvailable(Instruction *Repl, BasicBlock *HoistPt,
496 bool makeGepOperandsAvailable(Instruction *Repl, BasicBlock *HoistPt,
653 // Stop traversal when reaching HoistPt.
675 bool GVNHoist::hasEHOnPath(const BasicBlock *HoistPt, const BasicBlock *SrcBB,
677 assert(DT->dominates(HoistPt, SrcBB) && "Invalid path");
686 if (BB == HoistPt) {
878 const BasicBlock *HoistPt) const {
881 if (!DT->dominates(Inst->getParent(), HoistPt))
888 const BasicBlock *HoistPt) const {
891 if (!DT->dominates(Inst->getParent(), HoistPt)) {
894 if (!allGepOperandsAvailable(GepOp, HoistPt))
899 // defined in blocks not dominating HoistPt.
906 void GVNHoist::makeGepsAvailable(Instruction *Repl, BasicBlock *HoistPt,
909 assert(allGepOperandsAvailable(Gep, HoistPt) && "GEP operands not available");
915 if (DT->dominates(Op->getParent(), HoistPt))
919 // of this GEP available at HoistPt.
921 makeGepsAvailable(ClonedGep, HoistPt, InstructionsToHoist, GepOp);
925 ClonedGep->insertBefore(HoistPt->getTerminator()->getIterator());
1032 Instruction *Repl, BasicBlock *HoistPt,
1034 // Check whether the GEP of a ld/st can be synthesized at HoistPt.
1045 // Check whether we can compute the GEP at HoistPt.
1046 if (!allGepOperandsAvailable(Val, HoistPt))
1048 } else if (!DT->dominates(Val->getParent(), HoistPt))
1053 // Check whether we can compute the Gep at HoistPt.
1054 if (!Gep || !allGepOperandsAvailable(Gep, HoistPt))
1057 makeGepsAvailable(Repl, HoistPt, InstructionsToHoist, Gep);
1060 makeGepsAvailable(Repl, HoistPt, InstructionsToHoist, Val);
1068 // Find out whether we already have one of the instructions in HoistPt,
1075 // If there are two instructions in HoistPt to be hoisted in place:
1085 // Repl is already in HoistPt: it remains in place.
1090 // When we do not find Repl in HoistPt, select the first in the list
1091 // and move it to HoistPt.
1094 // We can move Repl in HoistPt only when all operands are available.
1108 // Move the instruction at the end of HoistPt.