Lines Matching refs:GEPI

718   void visitGetElementPtrInst(GetElementPtrInst &GEPI) {  in visitGetElementPtrInst()  argument
719 if (GEPI.use_empty()) in visitGetElementPtrInst()
720 return markAsDead(GEPI); in visitGetElementPtrInst()
722 if (SROAStrictInbounds && GEPI.isInBounds()) { in visitGetElementPtrInst()
731 const DataLayout &DL = GEPI.getModule()->getDataLayout(); in visitGetElementPtrInst()
732 for (gep_type_iterator GTI = gep_type_begin(GEPI), in visitGetElementPtrInst()
733 GTE = gep_type_end(GEPI); in visitGetElementPtrInst()
759 return markAsDead(GEPI); in visitGetElementPtrInst()
763 return Base::visitGetElementPtrInst(GEPI); in visitGetElementPtrInst()
3498 bool foldGEPSelect(GetElementPtrInst &GEPI) { in foldGEPSelect() argument
3499 if (!GEPI.hasAllConstantIndices()) in foldGEPSelect()
3502 SelectInst *Sel = cast<SelectInst>(GEPI.getPointerOperand()); in foldGEPSelect()
3506 << "\n " << GEPI); in foldGEPSelect()
3508 IRBuilderTy Builder(&GEPI); in foldGEPSelect()
3509 SmallVector<Value *, 4> Index(GEPI.indices()); in foldGEPSelect()
3510 bool IsInBounds = GEPI.isInBounds(); in foldGEPSelect()
3512 Type *Ty = GEPI.getSourceElementType(); in foldGEPSelect()
3531 Visited.erase(&GEPI); in foldGEPSelect()
3532 GEPI.replaceAllUsesWith(NSel); in foldGEPSelect()
3533 GEPI.eraseFromParent(); in foldGEPSelect()
3546 bool foldGEPPhi(GetElementPtrInst &GEPI) { in foldGEPPhi() argument
3547 if (!GEPI.hasAllConstantIndices()) in foldGEPPhi()
3550 PHINode *PHI = cast<PHINode>(GEPI.getPointerOperand()); in foldGEPPhi()
3551 if (GEPI.getParent() != PHI->getParent() || in foldGEPPhi()
3562 << "\n " << GEPI in foldGEPPhi()
3565 SmallVector<Value *, 4> Index(GEPI.indices()); in foldGEPPhi()
3566 bool IsInBounds = GEPI.isInBounds(); in foldGEPPhi()
3567 IRBuilderTy PHIBuilder(GEPI.getParent()->getFirstNonPHI()); in foldGEPPhi()
3568 PHINode *NewPN = PHIBuilder.CreatePHI(GEPI.getType(), in foldGEPPhi()
3581 Type *Ty = GEPI.getSourceElementType(); in foldGEPPhi()
3589 Visited.erase(&GEPI); in foldGEPPhi()
3590 GEPI.replaceAllUsesWith(NewPN); in foldGEPPhi()
3591 GEPI.eraseFromParent(); in foldGEPPhi()
3602 bool visitGetElementPtrInst(GetElementPtrInst &GEPI) { in visitGetElementPtrInst() argument
3603 if (isa<SelectInst>(GEPI.getPointerOperand()) && in visitGetElementPtrInst()
3604 foldGEPSelect(GEPI)) in visitGetElementPtrInst()
3607 if (isa<PHINode>(GEPI.getPointerOperand()) && in visitGetElementPtrInst()
3608 foldGEPPhi(GEPI)) in visitGetElementPtrInst()
3611 enqueueUsers(GEPI); in visitGetElementPtrInst()