Lines Matching refs:GEPI

1099   void visitGetElementPtrInst(GetElementPtrInst &GEPI) {  in visitGetElementPtrInst()  argument
1100 if (GEPI.use_empty()) in visitGetElementPtrInst()
1101 return markAsDead(GEPI); in visitGetElementPtrInst()
1103 if (SROAStrictInbounds && GEPI.isInBounds()) { in visitGetElementPtrInst()
1112 const DataLayout &DL = GEPI.getModule()->getDataLayout(); in visitGetElementPtrInst()
1113 for (gep_type_iterator GTI = gep_type_begin(GEPI), in visitGetElementPtrInst()
1114 GTE = gep_type_end(GEPI); in visitGetElementPtrInst()
1138 return markAsDead(GEPI); in visitGetElementPtrInst()
1142 return Base::visitGetElementPtrInst(GEPI); in visitGetElementPtrInst()
3967 bool foldGEPSelect(GetElementPtrInst &GEPI) { in foldGEPSelect() argument
3968 if (!GEPI.hasAllConstantIndices()) in foldGEPSelect()
3971 SelectInst *Sel = cast<SelectInst>(GEPI.getPointerOperand()); in foldGEPSelect()
3975 << "\n " << GEPI); in foldGEPSelect()
3977 IRB.SetInsertPoint(&GEPI); in foldGEPSelect()
3978 SmallVector<Value *, 4> Index(GEPI.indices()); in foldGEPSelect()
3979 bool IsInBounds = GEPI.isInBounds(); in foldGEPSelect()
3981 Type *Ty = GEPI.getSourceElementType(); in foldGEPSelect()
3993 Visited.erase(&GEPI); in foldGEPSelect()
3994 GEPI.replaceAllUsesWith(NSel); in foldGEPSelect()
3995 GEPI.eraseFromParent(); in foldGEPSelect()
4008 bool foldGEPPhi(GetElementPtrInst &GEPI) { in foldGEPPhi() argument
4009 if (!GEPI.hasAllConstantIndices()) in foldGEPPhi()
4012 PHINode *PHI = cast<PHINode>(GEPI.getPointerOperand()); in foldGEPPhi()
4013 if (GEPI.getParent() != PHI->getParent() || in foldGEPPhi()
4024 << "\n " << GEPI in foldGEPPhi()
4027 SmallVector<Value *, 4> Index(GEPI.indices()); in foldGEPPhi()
4028 bool IsInBounds = GEPI.isInBounds(); in foldGEPPhi()
4029 IRB.SetInsertPoint(GEPI.getParent(), GEPI.getParent()->getFirstNonPHIIt()); in foldGEPPhi()
4030 PHINode *NewPN = IRB.CreatePHI(GEPI.getType(), PHI->getNumIncomingValues(), in foldGEPPhi()
4042 Type *Ty = GEPI.getSourceElementType(); in foldGEPPhi()
4049 Visited.erase(&GEPI); in foldGEPPhi()
4050 GEPI.replaceAllUsesWith(NewPN); in foldGEPPhi()
4051 GEPI.eraseFromParent(); in foldGEPPhi()
4062 bool visitGetElementPtrInst(GetElementPtrInst &GEPI) { in visitGetElementPtrInst() argument
4063 if (isa<SelectInst>(GEPI.getPointerOperand()) && in visitGetElementPtrInst()
4064 foldGEPSelect(GEPI)) in visitGetElementPtrInst()
4067 if (isa<PHINode>(GEPI.getPointerOperand()) && in visitGetElementPtrInst()
4068 foldGEPPhi(GEPI)) in visitGetElementPtrInst()
4071 enqueueUsers(GEPI); in visitGetElementPtrInst()