Lines Matching refs:PHI
752 SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitPHINode(PHINode &PHI) {
754 PHINode *SizePHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues());
755 PHINode *OffsetPHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues());
758 CacheMap[&PHI] = std::make_pair(SizePHI, OffsetPHI);
760 // compute offset/size for each PHI incoming pointer
761 for (unsigned i = 0, e = PHI.getNumIncomingValues(); i != e; ++i) {
762 Builder.SetInsertPoint(PHI.getIncomingBlock(i)->getFirstInsertionPt());
763 SizeOffsetEvalType EdgeData = compute_(PHI.getIncomingValue(i));
772 SizePHI->addIncoming(EdgeData.first, PHI.getIncomingBlock(i));
773 OffsetPHI->addIncoming(EdgeData.second, PHI.getIncomingBlock(i));