reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1619 SmallVector<Value*, 8> Ops(GEP.op_begin(), GEP.op_end()); 1619 SmallVector<Value*, 8> Ops(GEP.op_begin(), GEP.op_end()); 1620 Type *GEPType = GEP.getType(); 1621 Type *GEPEltType = GEP.getSourceElementType(); 1622 if (Value *V = SimplifyGEPInst(GEPEltType, Ops, SQ.getWithInstruction(&GEP))) 1623 return replaceInstUsesWith(GEP, V); 1626 if (GEP.getType()->isVectorTy()) { 1627 auto VWidth = GEP.getType()->getVectorNumElements(); 1630 if (Value *V = SimplifyDemandedVectorElts(&GEP, AllOnesEltMask, 1632 if (V != &GEP) 1633 return replaceInstUsesWith(GEP, V); 1634 return &GEP; 1642 Value *PtrOp = GEP.getOperand(0); 1651 DL.getIndexType(GEP.getPointerOperandType()->getScalarType()); 1653 gep_type_iterator GTI = gep_type_begin(GEP); 1654 for (User::op_iterator I = GEP.op_begin() + 1, E = GEP.op_end(); I != E; 1654 for (User::op_iterator I = GEP.op_begin() + 1, E = GEP.op_end(); I != E; 1684 return &GEP; 1698 if (Op1 == &GEP) 1709 if (Op2 == &GEP) 1765 GEP.getParent()->getInstList().insert( 1766 GEP.getParent()->getFirstInsertionPt(), NewGEP); 1784 GEP.getParent()->getInstList().insert( 1785 GEP.getParent()->getFirstInsertionPt(), NewGEP); 1789 GEP.setOperand(0, NewGEP); 1797 if (!shouldMergeGEPs(*cast<GEPOperator>(&GEP), *Src)) 1801 if (LI && Src->getNumOperands() == 2 && GEP.getNumOperands() == 2 && 1803 if (Loop *L = LI->getLoopFor(GEP.getParent())) { 1804 Value *GO1 = GEP.getOperand(1); 1832 GEP.setOperand(1, SO1); 1833 return &GEP; 1843 NewGEP->setIsInBounds(GEP.isInBounds()); 1870 Value *GO1 = GEP.getOperand(1); 1880 SimplifyAddInst(GO1, SO1, false, false, SQ.getWithInstruction(&GEP)); 1888 GEP.setOperand(0, Src->getOperand(0)); 1889 GEP.setOperand(1, Sum); 1890 return &GEP; 1894 Indices.append(GEP.op_begin()+2, GEP.op_end()); 1894 Indices.append(GEP.op_begin()+2, GEP.op_end()); 1895 } else if (isa<Constant>(*GEP.idx_begin()) && 1896 cast<Constant>(*GEP.idx_begin())->isNullValue() && 1900 Indices.append(GEP.idx_begin()+1, GEP.idx_end()); 1900 Indices.append(GEP.idx_begin()+1, GEP.idx_end()); 1904 return GEP.isInBounds() && Src->isInBounds() 1907 GEP.getName()) 1910 GEP.getName()); 1913 if (GEP.getNumIndices() == 1) { 1914 unsigned AS = GEP.getPointerAddressSpace(); 1915 if (GEP.getOperand(1)->getType()->getScalarSizeInBits() == 1923 V = GEP.getOperand(1); 1925 } else if (match(GEP.getOperand(1), 1929 } else if (match(GEP.getOperand(1), 1950 m_PtrToInt(m_Specific(GEP.getOperand(0)))))) 1968 if (auto *C = dyn_cast<ConstantInt>(GEP.getOperand(1))) 1983 SmallVector<Value*, 8> Idx(GEP.idx_begin()+1, GEP.idx_end()); 1983 SmallVector<Value*, 8> Idx(GEP.idx_begin()+1, GEP.idx_end()); 1985 StrippedPtrEltTy, StrippedPtr, Idx, GEP.getName()); 1986 Res->setIsInBounds(GEP.isInBounds()); 1987 if (StrippedPtrTy->getAddressSpace() == GEP.getAddressSpace()) 2006 if (StrippedPtrTy->getAddressSpace() == GEP.getAddressSpace()) { 2007 GEP.setOperand(0, StrippedPtr); 2008 GEP.setSourceElementType(XATy); 2009 return &GEP; 2020 SmallVector<Value*, 8> Idx(GEP.idx_begin(), GEP.idx_end()); 2020 SmallVector<Value*, 8> Idx(GEP.idx_begin(), GEP.idx_end()); 2022 GEP.isInBounds() 2024 Idx, GEP.getName()) 2026 GEP.getName()); 2031 } else if (GEP.getNumOperands() == 2) { 2039 Value *Idx[2] = { Constant::getNullValue(IdxType), GEP.getOperand(1) }; 2041 GEP.isInBounds() 2043 GEP.getName()) 2045 GEP.getName()); 2061 Value *Idx = GEP.getOperand(1); 2077 GEP.isInBounds() && NSW 2079 NewIdx, GEP.getName()) 2081 GEP.getName()); 2102 Value *Idx = GEP.getOperand(1); 2121 GEP.isInBounds() && NSW 2123 Off, GEP.getName()) 2125 GEP.getName()); 2161 if (GEP.getNumOperands() == 3 && 2172 GEP.isInBounds() 2175 NGEP->takeName(&GEP); 2178 if (NGEP->getType()->getPointerAddressSpace() != GEP.getAddressSpace()) 2181 return replaceInstUsesWith(GEP, NGEP); 2191 if (!isa<BitCastInst>(SrcOp) && GEP.accumulateConstantOffset(DL, Offset)) { 2205 return &GEP; 2209 if (SrcType->getPointerAddressSpace() != GEP.getAddressSpace()) 2220 GEP.isInBounds() 2225 return replaceInstUsesWith(GEP, NGEP); 2226 NGEP->takeName(&GEP); 2228 if (NGEP->getType()->getPointerAddressSpace() != GEP.getAddressSpace()) 2235 if (!GEP.isInBounds()) { 2243 if (GEP.accumulateConstantOffset(DL, BasePtrOffset) && 2248 GEP.getSourceElementType(), PtrOp, makeArrayRef(Ops).slice(1), 2249 GEP.getName());