Lines Matching refs:GEPI

715   void visitGetElementPtrInst(GetElementPtrInst &GEPI) {  in visitGetElementPtrInst()  argument
716 if (GEPI.use_empty()) in visitGetElementPtrInst()
717 return markAsDead(GEPI); in visitGetElementPtrInst()
719 if (SROAStrictInbounds && GEPI.isInBounds()) { in visitGetElementPtrInst()
728 const DataLayout &DL = GEPI.getModule()->getDataLayout(); in visitGetElementPtrInst()
729 for (gep_type_iterator GTI = gep_type_begin(GEPI), in visitGetElementPtrInst()
730 GTE = gep_type_end(GEPI); in visitGetElementPtrInst()
756 return markAsDead(GEPI); in visitGetElementPtrInst()
760 return Base::visitGetElementPtrInst(GEPI); in visitGetElementPtrInst()
3471 bool foldGEPSelect(GetElementPtrInst &GEPI) { in foldGEPSelect() argument
3472 if (!GEPI.hasAllConstantIndices()) in foldGEPSelect()
3475 SelectInst *Sel = cast<SelectInst>(GEPI.getPointerOperand()); in foldGEPSelect()
3479 << "\n " << GEPI); in foldGEPSelect()
3481 IRB.SetInsertPoint(&GEPI); in foldGEPSelect()
3482 SmallVector<Value *, 4> Index(GEPI.indices()); in foldGEPSelect()
3483 bool IsInBounds = GEPI.isInBounds(); in foldGEPSelect()
3485 Type *Ty = GEPI.getSourceElementType(); in foldGEPSelect()
3497 Visited.erase(&GEPI); in foldGEPSelect()
3498 GEPI.replaceAllUsesWith(NSel); in foldGEPSelect()
3499 GEPI.eraseFromParent(); in foldGEPSelect()
3512 bool foldGEPPhi(GetElementPtrInst &GEPI) { in foldGEPPhi() argument
3513 if (!GEPI.hasAllConstantIndices()) in foldGEPPhi()
3516 PHINode *PHI = cast<PHINode>(GEPI.getPointerOperand()); in foldGEPPhi()
3517 if (GEPI.getParent() != PHI->getParent() || in foldGEPPhi()
3528 << "\n " << GEPI in foldGEPPhi()
3531 SmallVector<Value *, 4> Index(GEPI.indices()); in foldGEPPhi()
3532 bool IsInBounds = GEPI.isInBounds(); in foldGEPPhi()
3533 IRB.SetInsertPoint(GEPI.getParent()->getFirstNonPHI()); in foldGEPPhi()
3534 PHINode *NewPN = IRB.CreatePHI(GEPI.getType(), PHI->getNumIncomingValues(), in foldGEPPhi()
3546 Type *Ty = GEPI.getSourceElementType(); in foldGEPPhi()
3553 Visited.erase(&GEPI); in foldGEPPhi()
3554 GEPI.replaceAllUsesWith(NewPN); in foldGEPPhi()
3555 GEPI.eraseFromParent(); in foldGEPPhi()
3566 bool visitGetElementPtrInst(GetElementPtrInst &GEPI) { in visitGetElementPtrInst() argument
3567 if (isa<SelectInst>(GEPI.getPointerOperand()) && in visitGetElementPtrInst()
3568 foldGEPSelect(GEPI)) in visitGetElementPtrInst()
3571 if (isa<PHINode>(GEPI.getPointerOperand()) && in visitGetElementPtrInst()
3572 foldGEPPhi(GEPI)) in visitGetElementPtrInst()
3575 enqueueUsers(GEPI); in visitGetElementPtrInst()