Lines Matching refs:TD
49 const DataLayout &TD) { in FoldBitCast() argument
81 unsigned BitShift = TD.getTypeAllocSizeInBits(SrcEltTy); in FoldBitCast()
85 if (TD.isLittleEndian()) in FoldBitCast()
103 return FoldBitCast(ConstantVector::get(Ops), DestTy, TD); in FoldBitCast()
135 C = FoldBitCast(C, DestIVTy, TD); in FoldBitCast()
159 bool isLittleEndian = TD.isLittleEndian(); in FoldBitCast()
224 APInt &Offset, const DataLayout &TD) { in IsConstantOffsetFromGlobal() argument
238 return IsConstantOffsetFromGlobal(CE->getOperand(0), GV, Offset, TD); in IsConstantOffsetFromGlobal()
243 if (!IsConstantOffsetFromGlobal(CE->getOperand(0), GV, Offset, TD)) in IsConstantOffsetFromGlobal()
247 return GEP->accumulateConstantOffset(TD, Offset); in IsConstantOffsetFromGlobal()
259 const DataLayout &TD) { in ReadDataFromGlobal() argument
260 assert(ByteOffset <= TD.getTypeAllocSize(C->getType()) && in ReadDataFromGlobal()
278 if (!TD.isLittleEndian()) in ReadDataFromGlobal()
288 C = FoldBitCast(C, Type::getInt64Ty(C->getContext()), TD); in ReadDataFromGlobal()
289 return ReadDataFromGlobal(C, ByteOffset, CurPtr, BytesLeft, TD); in ReadDataFromGlobal()
292 C = FoldBitCast(C, Type::getInt32Ty(C->getContext()), TD); in ReadDataFromGlobal()
293 return ReadDataFromGlobal(C, ByteOffset, CurPtr, BytesLeft, TD); in ReadDataFromGlobal()
296 C = FoldBitCast(C, Type::getInt16Ty(C->getContext()), TD); in ReadDataFromGlobal()
297 return ReadDataFromGlobal(C, ByteOffset, CurPtr, BytesLeft, TD); in ReadDataFromGlobal()
303 const StructLayout *SL = TD.getStructLayout(CS->getType()); in ReadDataFromGlobal()
311 uint64_t EltSize = TD.getTypeAllocSize(CS->getOperand(Index)->getType()); in ReadDataFromGlobal()
315 BytesLeft, TD)) in ReadDataFromGlobal()
342 uint64_t EltSize = TD.getTypeAllocSize(EltTy); in ReadDataFromGlobal()
353 BytesLeft, TD)) in ReadDataFromGlobal()
370 CE->getOperand(0)->getType() == TD.getIntPtrType(CE->getContext())) in ReadDataFromGlobal()
372 BytesLeft, TD); in ReadDataFromGlobal()
380 const DataLayout &TD) { in FoldReinterpretLoadFromConstPtr() argument
399 TD.getTypeAllocSizeInBits(LoadTy)); in FoldReinterpretLoadFromConstPtr()
404 C = FoldBitCast(C, MapTy, TD); in FoldReinterpretLoadFromConstPtr()
405 if (Constant *Res = FoldReinterpretLoadFromConstPtr(C, TD)) in FoldReinterpretLoadFromConstPtr()
406 return FoldBitCast(Res, LoadTy, TD); in FoldReinterpretLoadFromConstPtr()
414 APInt Offset(TD.getPointerSizeInBits(), 0); in FoldReinterpretLoadFromConstPtr()
415 if (!IsConstantOffsetFromGlobal(C, GVal, Offset, TD)) in FoldReinterpretLoadFromConstPtr()
429 TD.getTypeAllocSize(GV->getInitializer()->getType())) in FoldReinterpretLoadFromConstPtr()
434 BytesLoaded, TD)) in FoldReinterpretLoadFromConstPtr()
438 if (TD.isLittleEndian()) { in FoldReinterpretLoadFromConstPtr()
459 const DataLayout *TD) { in ConstantFoldLoadFromConstPtr() argument
480 if (TD && getConstantStringInfo(CE, Str) && !Str.empty()) { in ConstantFoldLoadFromConstPtr()
490 if (TD->isLittleEndian()) { in ConstantFoldLoadFromConstPtr()
515 dyn_cast<GlobalVariable>(GetUnderlyingObject(CE, TD))) { in ConstantFoldLoadFromConstPtr()
526 if (TD) in ConstantFoldLoadFromConstPtr()
527 return FoldReinterpretLoadFromConstPtr(CE, *TD); in ConstantFoldLoadFromConstPtr()
531 static Constant *ConstantFoldLoadInst(const LoadInst *LI, const DataLayout *TD){ in ConstantFoldLoadInst() argument
535 return ConstantFoldLoadFromConstPtr(C, TD); in ConstantFoldLoadInst()
601 Type *ResultTy, const DataLayout *TD, in CastGEPIndices() argument
603 if (!TD) return 0; in CastGEPIndices()
604 Type *IntPtrTy = TD->getIntPtrType(ResultTy->getContext()); in CastGEPIndices()
627 if (Constant *Folded = ConstantFoldConstantExpression(CE, TD, TLI)) in CastGEPIndices()
651 Type *ResultTy, const DataLayout *TD, in SymbolicallyEvaluateGEP() argument
654 if (!TD || !cast<PointerType>(Ptr->getType())->getElementType()->isSized() || in SymbolicallyEvaluateGEP()
658 Type *IntPtrTy = TD->getIntPtrType(Ptr->getContext()); in SymbolicallyEvaluateGEP()
678 Res = ConstantFoldConstantExpression(ResCE, TD, TLI); in SymbolicallyEvaluateGEP()
685 unsigned BitWidth = TD->getTypeSizeInBits(IntPtrTy); in SymbolicallyEvaluateGEP()
687 APInt(BitWidth, TD->getIndexedOffset(Ptr->getType(), in SymbolicallyEvaluateGEP()
709 TD->getIndexedOffset(Ptr->getType(), NestedOps)); in SymbolicallyEvaluateGEP()
745 APInt ElemSize(BitWidth, TD->getTypeAllocSize(ATy->getElementType())); in SymbolicallyEvaluateGEP()
746 IntegerType *IntPtrTy = TD->getIntPtrType(Ty->getContext()); in SymbolicallyEvaluateGEP()
765 const StructLayout &SL = *TD->getStructLayout(STy); in SymbolicallyEvaluateGEP()
798 C = FoldBitCast(C, ResultTy, *TD); in SymbolicallyEvaluateGEP()
815 const DataLayout *TD, in ConstantFoldInstruction() argument
835 C = ConstantFoldConstantExpression(NewC, TD, TLI); in ConstantFoldInstruction()
858 Op = ConstantFoldConstantExpression(NewCE, TD, TLI); in ConstantFoldInstruction()
865 TD, TLI); in ConstantFoldInstruction()
868 return ConstantFoldLoadInst(LI, TD); in ConstantFoldInstruction()
881 return ConstantFoldInstOperands(I->getOpcode(), I->getType(), Ops, TD, TLI); in ConstantFoldInstruction()
885 ConstantFoldConstantExpressionImpl(const ConstantExpr *CE, const DataLayout *TD, in ConstantFoldConstantExpressionImpl() argument
896 NewC = ConstantFoldConstantExpressionImpl(NewCE, TD, TLI, FoldedOps); in ConstantFoldConstantExpressionImpl()
903 TD, TLI); in ConstantFoldConstantExpressionImpl()
904 return ConstantFoldInstOperands(CE->getOpcode(), CE->getType(), Ops, TD, TLI); in ConstantFoldConstantExpressionImpl()
911 const DataLayout *TD, in ConstantFoldConstantExpression() argument
914 return ConstantFoldConstantExpressionImpl(CE, TD, TLI, FoldedOps); in ConstantFoldConstantExpression()
929 const DataLayout *TD, in ConstantFoldInstOperands() argument
934 if (Constant *C = SymbolicallyEvaluateBinop(Opcode, Ops[0], Ops[1], TD)) in ConstantFoldInstOperands()
953 if (TD && CE->getOpcode() == Instruction::IntToPtr) { in ConstantFoldInstOperands()
956 if (TD->getPointerSizeInBits() < InWidth) { in ConstantFoldInstOperands()
959 TD->getPointerSizeInBits())); in ConstantFoldInstOperands()
972 if (TD && in ConstantFoldInstOperands()
973 TD->getPointerSizeInBits() <= CE->getType()->getScalarSizeInBits() && in ConstantFoldInstOperands()
975 return FoldBitCast(CE->getOperand(0), DestTy, *TD); in ConstantFoldInstOperands()
989 if (TD) in ConstantFoldInstOperands()
990 return FoldBitCast(Ops[0], DestTy, *TD); in ConstantFoldInstOperands()
1001 if (Constant *C = CastGEPIndices(Ops, DestTy, TD, TLI)) in ConstantFoldInstOperands()
1003 if (Constant *C = SymbolicallyEvaluateGEP(Ops, DestTy, TD, TLI)) in ConstantFoldInstOperands()
1016 const DataLayout *TD, in ConstantFoldCompareInstOperands() argument
1026 if (TD && Ops1->isNullValue()) { in ConstantFoldCompareInstOperands()
1027 Type *IntPtrTy = TD->getIntPtrType(CE0->getContext()); in ConstantFoldCompareInstOperands()
1034 return ConstantFoldCompareInstOperands(Predicate, C, Null, TD, TLI); in ConstantFoldCompareInstOperands()
1043 return ConstantFoldCompareInstOperands(Predicate, C, Null, TD, TLI); in ConstantFoldCompareInstOperands()
1048 if (TD && CE0->getOpcode() == CE1->getOpcode()) { in ConstantFoldCompareInstOperands()
1049 Type *IntPtrTy = TD->getIntPtrType(CE0->getContext()); in ConstantFoldCompareInstOperands()
1058 return ConstantFoldCompareInstOperands(Predicate, C0, C1, TD, TLI); in ConstantFoldCompareInstOperands()
1067 CE1->getOperand(0), TD, TLI); in ConstantFoldCompareInstOperands()
1077 TD, TLI); in ConstantFoldCompareInstOperands()
1080 TD, TLI); in ConstantFoldCompareInstOperands()
1084 return ConstantFoldInstOperands(OpC, LHS->getType(), Ops, TD, TLI); in ConstantFoldCompareInstOperands()