|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
include/llvm/IR/Constants.h 57 class ConstantData : public Constant {
389 class ConstantAggregate : public Constant {
839 class BlockAddress final : public Constant {
888 class ConstantExpr : public Constant {
include/llvm/IR/GlobalValue.h 44 class GlobalValue : public Constant {
Declarations
include/llvm/Analysis/ConstantFolding.h 26 class Constant;
include/llvm/Analysis/LazyValueInfo.h 22 class Constant;
include/llvm/Analysis/ScalarEvolution.h 57 class Constant;
include/llvm/Analysis/ScalarEvolutionExpressions.h 33 class Constant;
include/llvm/AsmParser/Parser.h 20 class Constant;
include/llvm/CodeGen/AsmPrinter.h 38 class Constant;
include/llvm/CodeGen/FastISel.h 39 class Constant;
include/llvm/CodeGen/GCMetadata.h 50 class Constant;
include/llvm/CodeGen/GlobalISel/IRTranslator.h 39 class Constant;
include/llvm/CodeGen/MachineConstantPool.h 25 class Constant;
include/llvm/CodeGen/MachineOperand.h 26 class Constant;
include/llvm/CodeGen/SelectionDAG.h 61 class Constant;
include/llvm/CodeGen/SelectionDAGNodes.h 58 class Constant;
include/llvm/CodeGen/TargetLowering.h 71 class Constant;
include/llvm/ExecutionEngine/ExecutionEngine.h 44 class Constant;
include/llvm/ExecutionEngine/Orc/IndirectionUtils.h 37 class Constant;
include/llvm/IR/AutoUpgrade.h 20 class Constant;
include/llvm/IR/DIBuilder.h 34 class Constant;
include/llvm/IR/Function.h 50 class Constant;
include/llvm/IR/GlobalVariable.h 34 class Constant;
include/llvm/IR/MDBuilder.h 29 class Constant;
include/llvm/IR/Value.h 32 class Constant;
include/llvm/Transforms/Scalar/ConstantHoisting.h 53 class Constant;
include/llvm/Transforms/Scalar/GVN.h 42 class Constant;
include/llvm/Transforms/Scalar/JumpThreading.h 36 class Constant;
include/llvm/Transforms/Utils/FunctionComparator.h 33 class Constant;
include/llvm/Transforms/Utils/GlobalStatus.h 16 class Constant;
include/llvm/Transforms/Utils/ModuleUtils.h 27 class Constant;
include/llvm/Transforms/Utils/ValueMapper.h 23 class Constant;
lib/AsmParser/LLParser.h 35 class Constant;
lib/Bitcode/Reader/ValueList.h 23 class Constant;
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h 57 class Constant;
lib/IR/ConstantFold.h 26 class Constant;
lib/Target/ARM/ARMConstantPoolValue.h 27 class Constant;
lib/Target/X86/X86ShuffleDecodeConstantPool.h 24 class Constant;
tools/clang/include/clang/CodeGen/ModuleBuilder.h 19 class Constant;
tools/clang/lib/CodeGen/CGBlocks.h 29 class Constant;
tools/clang/lib/CodeGen/CGCXXABI.h 21 class Constant;
tools/clang/lib/CodeGen/CGObjCRuntime.h 25 class Constant;
tools/clang/lib/CodeGen/CGOpenMPRuntime.h 30 class Constant;
tools/clang/lib/CodeGen/CGValue.h 25 class Constant;
tools/clang/lib/CodeGen/CodeGenModule.h 41 class Constant;
tools/clang/lib/CodeGen/PatternInit.h 13 class Constant;
tools/clang/lib/CodeGen/TargetInfo.h 26 class Constant;
tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h 29 class Constant;
References
examples/BrainF/BrainF.cpp 95 Constant* allocsize = ConstantExpr::getSizeOf(Int8Ty);
142 Constant *msg_0 =
164 Constant *zero_32 = Constant::getNullValue(IntegerType::getInt32Ty(C));
164 Constant *zero_32 = Constant::getNullValue(IntegerType::getInt32Ty(C));
166 Constant *gep_params[] = {
171 Constant *msgptr = ConstantExpr::
examples/Kaleidoscope/BuildingAJIT/Chapter1/toy.cpp 984 return Constant::getNullValue(Type::getDoubleTy(*TheContext));
examples/Kaleidoscope/BuildingAJIT/Chapter2/toy.cpp 984 return Constant::getNullValue(Type::getDoubleTy(*TheContext));
examples/Kaleidoscope/BuildingAJIT/Chapter3/toy.cpp 983 return Constant::getNullValue(Type::getDoubleTy(TheContext));
examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp 969 return Constant::getNullValue(Type::getDoubleTy(TheContext));
examples/Kaleidoscope/BuildingAJIT/Chapter5/toy.cpp 993 return Constant::getNullValue(Type::getDoubleTy(TheContext));
examples/Kaleidoscope/Chapter5/toy.cpp 765 return Constant::getNullValue(Type::getDoubleTy(TheContext));
examples/Kaleidoscope/Chapter6/toy.cpp 877 return Constant::getNullValue(Type::getDoubleTy(TheContext));
examples/Kaleidoscope/Chapter7/toy.cpp 989 return Constant::getNullValue(Type::getDoubleTy(TheContext));
examples/Kaleidoscope/Chapter8/toy.cpp 988 return Constant::getNullValue(Type::getDoubleTy(TheContext));
examples/Kaleidoscope/Chapter9/toy.cpp 1153 return Constant::getNullValue(Type::getDoubleTy(TheContext));
include/llvm/ADT/ArrayRef.h 108 const ArrayRef<U *> &A,
110 std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
118 const SmallVectorTemplateCommon<U *, DummyT> &Vec,
120 std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
127 ArrayRef(const std::vector<U *, A> &Vec,
129 std::is_convertible<U *const *, T const *>::value>::type* = 0)
include/llvm/ADT/DenseMapInfo.h 39 static inline T* getEmptyKey() {
41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
45 static inline T* getTombstoneKey() {
47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
51 static unsigned getHashValue(const T *PtrVal) {
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/STLExtras.h 1014 std::is_base_of<T, U>::value && are_base_of<T, Ts...>::value;
1014 std::is_base_of<T, U>::value && are_base_of<T, Ts...>::value;
1014 std::is_base_of<T, U>::value && are_base_of<T, Ts...>::value;
1014 std::is_base_of<T, U>::value && are_base_of<T, Ts...>::value;
include/llvm/Analysis/CFLSteensAliasAnalysis.h 83 if (isa<Constant>(LocA.Ptr) && isa<Constant>(LocB.Ptr))
83 if (isa<Constant>(LocA.Ptr) && isa<Constant>(LocB.Ptr))
include/llvm/Analysis/CmpInstAnalysis.h 54 Constant *getPredForICmpCode(unsigned Code, bool Sign, Type *OpTy,
include/llvm/Analysis/ConstantFolding.h 38 bool IsConstantOffsetFromGlobal(Constant *C, GlobalValue *&GV, APInt &Offset,
46 Constant *ConstantFoldInstruction(Instruction *I, const DataLayout &DL,
52 Constant *ConstantFoldConstant(const Constant *C, const DataLayout &DL,
52 Constant *ConstantFoldConstant(const Constant *C, const DataLayout &DL,
61 Constant *ConstantFoldInstOperands(Instruction *I, ArrayRef<Constant *> Ops,
61 Constant *ConstantFoldInstOperands(Instruction *I, ArrayRef<Constant *> Ops,
69 Constant *
70 ConstantFoldCompareInstOperands(unsigned Predicate, Constant *LHS,
71 Constant *RHS, const DataLayout &DL,
77 Constant *ConstantFoldUnaryOpOperand(unsigned Opcode, Constant *Op,
77 Constant *ConstantFoldUnaryOpOperand(unsigned Opcode, Constant *Op,
83 Constant *ConstantFoldBinaryOpOperands(unsigned Opcode, Constant *LHS,
83 Constant *ConstantFoldBinaryOpOperands(unsigned Opcode, Constant *LHS,
84 Constant *RHS, const DataLayout &DL);
89 Constant *ConstantFoldSelectInstruction(Constant *Cond, Constant *V1,
89 Constant *ConstantFoldSelectInstruction(Constant *Cond, Constant *V1,
89 Constant *ConstantFoldSelectInstruction(Constant *Cond, Constant *V1,
90 Constant *V2);
94 Constant *ConstantFoldCastOperand(unsigned Opcode, Constant *C, Type *DestTy,
94 Constant *ConstantFoldCastOperand(unsigned Opcode, Constant *C, Type *DestTy,
100 Constant *ConstantFoldInsertValueInstruction(Constant *Agg, Constant *Val,
100 Constant *ConstantFoldInsertValueInstruction(Constant *Agg, Constant *Val,
100 Constant *ConstantFoldInsertValueInstruction(Constant *Agg, Constant *Val,
106 Constant *ConstantFoldExtractValueInstruction(Constant *Agg,
106 Constant *ConstantFoldExtractValueInstruction(Constant *Agg,
112 Constant *ConstantFoldInsertElementInstruction(Constant *Val,
112 Constant *ConstantFoldInsertElementInstruction(Constant *Val,
113 Constant *Elt,
114 Constant *Idx);
119 Constant *ConstantFoldExtractElementInstruction(Constant *Val, Constant *Idx);
119 Constant *ConstantFoldExtractElementInstruction(Constant *Val, Constant *Idx);
119 Constant *ConstantFoldExtractElementInstruction(Constant *Val, Constant *Idx);
124 Constant *ConstantFoldShuffleVectorInstruction(Constant *V1, Constant *V2,
124 Constant *ConstantFoldShuffleVectorInstruction(Constant *V1, Constant *V2,
124 Constant *ConstantFoldShuffleVectorInstruction(Constant *V1, Constant *V2,
125 Constant *Mask);
130 Constant *ConstantFoldLoadFromConstPtr(Constant *C, Type *Ty, const DataLayout &DL);
130 Constant *ConstantFoldLoadFromConstPtr(Constant *C, Type *Ty, const DataLayout &DL);
135 Constant *ConstantFoldLoadThroughGEPConstantExpr(Constant *C, ConstantExpr *CE);
135 Constant *ConstantFoldLoadThroughGEPConstantExpr(Constant *C, ConstantExpr *CE);
141 Constant *ConstantFoldLoadThroughGEPIndices(Constant *C,
141 Constant *ConstantFoldLoadThroughGEPIndices(Constant *C,
142 ArrayRef<Constant *> Indices);
150 Constant *ConstantFoldCall(const CallBase *Call, Function *F,
151 ArrayRef<Constant *> Operands,
157 Constant *ConstantFoldLoadThroughBitcast(Constant *C, Type *DestTy,
157 Constant *ConstantFoldLoadThroughBitcast(Constant *C, Type *DestTy,
include/llvm/Analysis/IVDescriptors.h 160 static Constant *getRecurrenceIdentity(RecurrenceKind K, Type *Tp);
include/llvm/Analysis/InstructionSimplify.h 233 Value *SimplifyShuffleVectorInst(Value *Op0, Value *Op1, Constant *Mask,
include/llvm/Analysis/LazyCallGraph.h 1075 static void visitReferences(SmallVectorImpl<Constant *> &Worklist,
1076 SmallPtrSetImpl<Constant *> &Visited,
1079 Constant *C = Worklist.pop_back_val();
1111 if (Visited.insert(cast<Constant>(Op)).second)
1112 Worklist.push_back(cast<Constant>(Op));
include/llvm/Analysis/LazyValueInfo.h 71 Tristate getPredicateOnEdge(unsigned Pred, Value *V, Constant *C,
78 Tristate getPredicateAt(unsigned Pred, Value *V, Constant *C,
83 Constant *getConstant(Value *V, BasicBlock *BB, Instruction *CxtI = nullptr);
92 Constant *getConstantOnEdge(Value *V, BasicBlock *FromBB, BasicBlock *ToBB,
include/llvm/Analysis/LoopUnrollAnalyzer.h 49 DenseMap<Value *, Constant *> &SimplifiedValues,
79 DenseMap<Value *, Constant *> &SimplifiedValues;
include/llvm/Analysis/ObjCARCAnalysisUtils.h 155 if (isa<Constant>(Op) || isa<AllocaInst>(Op))
217 isa<Argument>(V) || isa<Constant>(V) ||
include/llvm/Analysis/ScalarEvolution.h 1368 DenseMap<PHINode *, Constant *> ConstantEvolutionLoopExitValue;
1587 ExitLimit computeLoadConstantCompareExitLimit(LoadInst *LI, Constant *RHS,
1726 Constant *getConstantEvolutionLoopExitValue(PHINode *PN, const APInt &BEs,
include/llvm/Analysis/ScalarEvolutionExpressions.h 498 bool isOffsetOf(Type *&STy, Constant *&FieldNo) const;
include/llvm/Analysis/SparsePropagation.h 318 Constant *C =
319 dyn_cast_or_null<Constant>(LatticeFunc->GetValueFromLatticeVal(
357 Constant *C = dyn_cast_or_null<Constant>(LatticeFunc->GetValueFromLatticeVal(
357 Constant *C = dyn_cast_or_null<Constant>(LatticeFunc->GetValueFromLatticeVal(
include/llvm/Analysis/TargetFolder.h 35 Constant *Fold(Constant *C) const {
35 Constant *Fold(Constant *C) const {
36 if (Constant *CF = ConstantFoldConstant(C, DL))
48 Constant *CreateAdd(Constant *LHS, Constant *RHS,
48 Constant *CreateAdd(Constant *LHS, Constant *RHS,
48 Constant *CreateAdd(Constant *LHS, Constant *RHS,
52 Constant *CreateFAdd(Constant *LHS, Constant *RHS) const {
52 Constant *CreateFAdd(Constant *LHS, Constant *RHS) const {
52 Constant *CreateFAdd(Constant *LHS, Constant *RHS) const {
55 Constant *CreateSub(Constant *LHS, Constant *RHS,
55 Constant *CreateSub(Constant *LHS, Constant *RHS,
55 Constant *CreateSub(Constant *LHS, Constant *RHS,
59 Constant *CreateFSub(Constant *LHS, Constant *RHS) const {
59 Constant *CreateFSub(Constant *LHS, Constant *RHS) const {
59 Constant *CreateFSub(Constant *LHS, Constant *RHS) const {
62 Constant *CreateMul(Constant *LHS, Constant *RHS,
62 Constant *CreateMul(Constant *LHS, Constant *RHS,
62 Constant *CreateMul(Constant *LHS, Constant *RHS,
66 Constant *CreateFMul(Constant *LHS, Constant *RHS) const {
66 Constant *CreateFMul(Constant *LHS, Constant *RHS) const {
66 Constant *CreateFMul(Constant *LHS, Constant *RHS) const {
69 Constant *CreateUDiv(Constant *LHS, Constant *RHS, bool isExact = false)const{
69 Constant *CreateUDiv(Constant *LHS, Constant *RHS, bool isExact = false)const{
69 Constant *CreateUDiv(Constant *LHS, Constant *RHS, bool isExact = false)const{
72 Constant *CreateSDiv(Constant *LHS, Constant *RHS, bool isExact = false)const{
72 Constant *CreateSDiv(Constant *LHS, Constant *RHS, bool isExact = false)const{
72 Constant *CreateSDiv(Constant *LHS, Constant *RHS, bool isExact = false)const{
75 Constant *CreateFDiv(Constant *LHS, Constant *RHS) const {
75 Constant *CreateFDiv(Constant *LHS, Constant *RHS) const {
75 Constant *CreateFDiv(Constant *LHS, Constant *RHS) const {
78 Constant *CreateURem(Constant *LHS, Constant *RHS) const {
78 Constant *CreateURem(Constant *LHS, Constant *RHS) const {
78 Constant *CreateURem(Constant *LHS, Constant *RHS) const {
81 Constant *CreateSRem(Constant *LHS, Constant *RHS) const {
81 Constant *CreateSRem(Constant *LHS, Constant *RHS) const {
81 Constant *CreateSRem(Constant *LHS, Constant *RHS) const {
84 Constant *CreateFRem(Constant *LHS, Constant *RHS) const {
84 Constant *CreateFRem(Constant *LHS, Constant *RHS) const {
84 Constant *CreateFRem(Constant *LHS, Constant *RHS) const {
87 Constant *CreateShl(Constant *LHS, Constant *RHS,
87 Constant *CreateShl(Constant *LHS, Constant *RHS,
87 Constant *CreateShl(Constant *LHS, Constant *RHS,
91 Constant *CreateLShr(Constant *LHS, Constant *RHS, bool isExact = false)const{
91 Constant *CreateLShr(Constant *LHS, Constant *RHS, bool isExact = false)const{
91 Constant *CreateLShr(Constant *LHS, Constant *RHS, bool isExact = false)const{
94 Constant *CreateAShr(Constant *LHS, Constant *RHS, bool isExact = false)const{
94 Constant *CreateAShr(Constant *LHS, Constant *RHS, bool isExact = false)const{
94 Constant *CreateAShr(Constant *LHS, Constant *RHS, bool isExact = false)const{
97 Constant *CreateAnd(Constant *LHS, Constant *RHS) const {
97 Constant *CreateAnd(Constant *LHS, Constant *RHS) const {
97 Constant *CreateAnd(Constant *LHS, Constant *RHS) const {
100 Constant *CreateOr(Constant *LHS, Constant *RHS) const {
100 Constant *CreateOr(Constant *LHS, Constant *RHS) const {
100 Constant *CreateOr(Constant *LHS, Constant *RHS) const {
103 Constant *CreateXor(Constant *LHS, Constant *RHS) const {
103 Constant *CreateXor(Constant *LHS, Constant *RHS) const {
103 Constant *CreateXor(Constant *LHS, Constant *RHS) const {
107 Constant *CreateBinOp(Instruction::BinaryOps Opc,
108 Constant *LHS, Constant *RHS) const {
108 Constant *LHS, Constant *RHS) const {
116 Constant *CreateNeg(Constant *C,
116 Constant *CreateNeg(Constant *C,
120 Constant *CreateFNeg(Constant *C) const {
120 Constant *CreateFNeg(Constant *C) const {
123 Constant *CreateNot(Constant *C) const {
123 Constant *CreateNot(Constant *C) const {
127 Constant *CreateUnOp(Instruction::UnaryOps Opc, Constant *C) const {
127 Constant *CreateUnOp(Instruction::UnaryOps Opc, Constant *C) const {
135 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
135 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
136 ArrayRef<Constant *> IdxList) const {
139 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
139 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
139 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
145 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
145 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
150 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
150 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
151 ArrayRef<Constant *> IdxList) const {
154 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
154 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
155 Constant *Idx) const {
161 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
161 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
170 Constant *CreateCast(Instruction::CastOps Op, Constant *C,
170 Constant *CreateCast(Instruction::CastOps Op, Constant *C,
176 Constant *CreateIntCast(Constant *C, Type *DestTy,
176 Constant *CreateIntCast(Constant *C, Type *DestTy,
182 Constant *CreatePointerCast(Constant *C, Type *DestTy) const {
182 Constant *CreatePointerCast(Constant *C, Type *DestTy) const {
187 Constant *CreateFPCast(Constant *C, Type *DestTy) const {
187 Constant *CreateFPCast(Constant *C, Type *DestTy) const {
192 Constant *CreateBitCast(Constant *C, Type *DestTy) const {
192 Constant *CreateBitCast(Constant *C, Type *DestTy) const {
195 Constant *CreateIntToPtr(Constant *C, Type *DestTy) const {
195 Constant *CreateIntToPtr(Constant *C, Type *DestTy) const {
198 Constant *CreatePtrToInt(Constant *C, Type *DestTy) const {
198 Constant *CreatePtrToInt(Constant *C, Type *DestTy) const {
201 Constant *CreateZExtOrBitCast(Constant *C, Type *DestTy) const {
201 Constant *CreateZExtOrBitCast(Constant *C, Type *DestTy) const {
206 Constant *CreateSExtOrBitCast(Constant *C, Type *DestTy) const {
206 Constant *CreateSExtOrBitCast(Constant *C, Type *DestTy) const {
211 Constant *CreateTruncOrBitCast(Constant *C, Type *DestTy) const {
211 Constant *CreateTruncOrBitCast(Constant *C, Type *DestTy) const {
217 Constant *CreatePointerBitCastOrAddrSpaceCast(Constant *C,
217 Constant *CreatePointerBitCastOrAddrSpaceCast(Constant *C,
228 Constant *CreateICmp(CmpInst::Predicate P, Constant *LHS,
228 Constant *CreateICmp(CmpInst::Predicate P, Constant *LHS,
229 Constant *RHS) const {
232 Constant *CreateFCmp(CmpInst::Predicate P, Constant *LHS,
232 Constant *CreateFCmp(CmpInst::Predicate P, Constant *LHS,
233 Constant *RHS) const {
241 Constant *CreateSelect(Constant *C, Constant *True, Constant *False) const {
241 Constant *CreateSelect(Constant *C, Constant *True, Constant *False) const {
241 Constant *CreateSelect(Constant *C, Constant *True, Constant *False) const {
241 Constant *CreateSelect(Constant *C, Constant *True, Constant *False) const {
245 Constant *CreateExtractElement(Constant *Vec, Constant *Idx) const {
245 Constant *CreateExtractElement(Constant *Vec, Constant *Idx) const {
245 Constant *CreateExtractElement(Constant *Vec, Constant *Idx) const {
249 Constant *CreateInsertElement(Constant *Vec, Constant *NewElt,
249 Constant *CreateInsertElement(Constant *Vec, Constant *NewElt,
249 Constant *CreateInsertElement(Constant *Vec, Constant *NewElt,
250 Constant *Idx) const {
254 Constant *CreateShuffleVector(Constant *V1, Constant *V2,
254 Constant *CreateShuffleVector(Constant *V1, Constant *V2,
254 Constant *CreateShuffleVector(Constant *V1, Constant *V2,
255 Constant *Mask) const {
259 Constant *CreateExtractValue(Constant *Agg,
259 Constant *CreateExtractValue(Constant *Agg,
264 Constant *CreateInsertValue(Constant *Agg, Constant *Val,
264 Constant *CreateInsertValue(Constant *Agg, Constant *Val,
264 Constant *CreateInsertValue(Constant *Agg, Constant *Val,
include/llvm/Analysis/TargetTransformInfo.h 650 bool shouldBuildLookupTablesForConstant(Constant *C) const;
1233 virtual bool shouldBuildLookupTablesForConstant(Constant *C) = 0;
1553 bool shouldBuildLookupTablesForConstant(Constant *C) override {
include/llvm/Analysis/TargetTransformInfoImpl.h 110 if (!isa<Constant>(Operands[Idx]))
298 bool shouldBuildLookupTablesForConstant(Constant *C) { return true; }
608 const auto* VectorValue = cast<Constant>(Val);
608 const auto* VectorValue = cast<Constant>(Val);
include/llvm/Analysis/TypeMetadataUtils.h 54 Constant *getPointerAtOffset(Constant *I, uint64_t Offset, Module &M);
54 Constant *getPointerAtOffset(Constant *I, uint64_t Offset, Module &M);
include/llvm/Analysis/Utils/Local.h 32 Value *Result = Constant::getNullValue(IntPtrTy);
48 if (Constant *OpC = dyn_cast<Constant>(Op)) {
48 if (Constant *OpC = dyn_cast<Constant>(Op)) {
67 Constant *Scale = ConstantInt::get(IntPtrTy, Size);
68 Constant *OC = ConstantExpr::getIntegerCast(OpC, IntPtrTy, true /*SExt*/);
include/llvm/Analysis/ValueLattice.h 57 Constant *ConstVal;
119 static ValueLatticeElement get(Constant *C) {
125 static ValueLatticeElement getNot(Constant *C) {
148 Constant *getConstant() const {
153 Constant *getNotConstant() const {
184 void markConstant(Constant *V) {
200 void markNotConstant(Constant *V) {
293 Constant *getCompare(CmpInst::Predicate Pred, Type *Ty,
include/llvm/Analysis/VectorUtils.h 272 Constant *createBitMaskForGaps(IRBuilder<> &Builder, unsigned VF,
287 Constant *createReplicatedMask(IRBuilder<> &Builder, unsigned ReplicationFactor,
301 Constant *createInterleaveMask(IRBuilder<> &Builder, unsigned VF,
316 Constant *createStrideMask(IRBuilder<> &Builder, unsigned Start,
330 Constant *createSequentialMask(IRBuilder<> &Builder, unsigned Start,
include/llvm/AsmParser/Parser.h 183 Constant *parseConstantValue(StringRef Asm, SMDiagnostic &Err, const Module &M,
include/llvm/CodeGen/AsmPrinter.h 357 virtual const MCExpr *lowerConstant(const Constant *CV);
360 void EmitGlobalConstant(const DataLayout &DL, const Constant *CV);
430 virtual void EmitXXStructor(const DataLayout &DL, const Constant *CV) {
687 void EmitXXStructorList(const DataLayout &DL, const Constant *List,
include/llvm/CodeGen/BasicTTIImpl.h 584 if (!isa<Constant>(A) && UniqueOperands.insert(A).second) {
1097 bool VarMask = !isa<Constant>(Mask);
1105 bool VarMask = !isa<Constant>(Mask);
include/llvm/CodeGen/FastISel.h 481 virtual unsigned fastMaterializeConstant(const Constant *C) { return 0; }
include/llvm/CodeGen/GCMetadata.h 69 const Constant *Metadata; ///< Metadata straight from the call
72 GCRoot(int N, const Constant *MD) : Num(N), Metadata(MD) {}
113 void addStackRoot(int Num, const Constant *Metadata) {
include/llvm/CodeGen/GlobalISel/IRTranslator.h 203 bool translate(const Constant &C, Register Reg);
include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h 365 MachineInstrBuilder buildConstDbgValue(const Constant &C,
include/llvm/CodeGen/MachineConstantPool.h 70 const Constant *ConstVal;
78 MachineConstantPoolEntry(const Constant *V, unsigned A)
142 unsigned getConstantPoolIndex(const Constant *C, unsigned Alignment);
include/llvm/CodeGen/MachineInstrBuilder.h 253 const MachineInstrBuilder &addShuffleMask(const Constant *Val) const {
include/llvm/CodeGen/MachineOperand.h 177 const Constant *ShuffleMask; // For MO_ShuffleMask
586 const Constant *getShuffleMask() const {
914 static MachineOperand CreateShuffleMask(const Constant *C) {
include/llvm/CodeGen/SelectionDAG.h 655 SDValue getConstantPool(const Constant *C, EVT VT, unsigned Align = 0,
658 SDValue getTargetConstantPool(const Constant *C, EVT VT, unsigned Align = 0,
include/llvm/CodeGen/SelectionDAGNodes.h 1824 const Constant *ConstVal;
1831 ConstantPoolSDNode(bool isTarget, const Constant *c, EVT VT, int o,
1855 const Constant *getConstVal() const {
include/llvm/CodeGen/TargetLowering.h 1587 getExceptionPointerRegister(const Constant *PersonalityFn) const {
1595 getExceptionSelectorRegister(const Constant *PersonalityFn) const {
3244 virtual const Constant *getTargetConstantFromLoad(LoadSDNode *LD) const;
include/llvm/CodeGen/TargetLoweringObjectFileImpl.h 56 const Constant *C,
114 const Constant *C,
180 const Constant *C,
include/llvm/ExecutionEngine/ExecutionEngine.h 394 void InitializeMemory(const Constant *Init, void *Addr);
504 GenericValue getConstantValue(const Constant *C);
include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h 488 Constant *Init = ConstantExpr::getCast(Instruction::IntToPtr,
510 NewA->setAliasee(cast<Constant>(Init));
include/llvm/ExecutionEngine/Orc/IndirectionUtils.h 413 Constant *createIRTypedAddress(FunctionType &FT, JITTargetAddress Addr);
418 Constant *Initializer);
include/llvm/FuzzMutate/OpDescriptor.h 32 void makeConstantsWithType(Type *T, std::vector<Constant *> &Cs);
33 std::vector<Constant *> makeConstantsWithType(Type *T);
51 using MakeT = std::function<std::vector<Constant *>(
64 std::vector<Constant *> Result;
66 Constant *V = UndefValue::get(T);
82 std::vector<Constant *> generate(ArrayRef<Value *> Cur,
134 std::vector<Constant *> Result;
153 std::vector<Constant *> Result;
include/llvm/IR/AutoUpgrade.h 76 Value *UpgradeBitCastExpr(unsigned Opc, Constant *C, Type *DestTy);
include/llvm/IR/CallSite.h 120 if (isa<FunTy>(V) || isa<Constant>(V))
include/llvm/IR/Constant.h 47 void operator=(const Constant &) = delete;
48 Constant(const Constant &) = delete;
128 Constant *getAggregateElement(unsigned Elt) const;
129 Constant *getAggregateElement(Constant *Elt) const;
129 Constant *getAggregateElement(Constant *Elt) const;
133 Constant *getSplatValue() const;
166 static Constant *getNullValue(Type* Ty);
171 static Constant *getAllOnesValue(Type* Ty);
175 static Constant *getIntegerValue(Type *Ty, const APInt &V);
183 const Constant *stripPointerCasts() const {
184 return cast<Constant>(Value::stripPointerCasts());
187 Constant *stripPointerCasts() {
include/llvm/IR/ConstantFolder.h 35 Constant *CreateAdd(Constant *LHS, Constant *RHS,
35 Constant *CreateAdd(Constant *LHS, Constant *RHS,
35 Constant *CreateAdd(Constant *LHS, Constant *RHS,
40 Constant *CreateFAdd(Constant *LHS, Constant *RHS) const {
40 Constant *CreateFAdd(Constant *LHS, Constant *RHS) const {
40 Constant *CreateFAdd(Constant *LHS, Constant *RHS) const {
44 Constant *CreateSub(Constant *LHS, Constant *RHS,
44 Constant *CreateSub(Constant *LHS, Constant *RHS,
44 Constant *CreateSub(Constant *LHS, Constant *RHS,
49 Constant *CreateFSub(Constant *LHS, Constant *RHS) const {
49 Constant *CreateFSub(Constant *LHS, Constant *RHS) const {
49 Constant *CreateFSub(Constant *LHS, Constant *RHS) const {
53 Constant *CreateMul(Constant *LHS, Constant *RHS,
53 Constant *CreateMul(Constant *LHS, Constant *RHS,
53 Constant *CreateMul(Constant *LHS, Constant *RHS,
58 Constant *CreateFMul(Constant *LHS, Constant *RHS) const {
58 Constant *CreateFMul(Constant *LHS, Constant *RHS) const {
58 Constant *CreateFMul(Constant *LHS, Constant *RHS) const {
62 Constant *CreateUDiv(Constant *LHS, Constant *RHS,
62 Constant *CreateUDiv(Constant *LHS, Constant *RHS,
62 Constant *CreateUDiv(Constant *LHS, Constant *RHS,
67 Constant *CreateSDiv(Constant *LHS, Constant *RHS,
67 Constant *CreateSDiv(Constant *LHS, Constant *RHS,
67 Constant *CreateSDiv(Constant *LHS, Constant *RHS,
72 Constant *CreateFDiv(Constant *LHS, Constant *RHS) const {
72 Constant *CreateFDiv(Constant *LHS, Constant *RHS) const {
72 Constant *CreateFDiv(Constant *LHS, Constant *RHS) const {
76 Constant *CreateURem(Constant *LHS, Constant *RHS) const {
76 Constant *CreateURem(Constant *LHS, Constant *RHS) const {
76 Constant *CreateURem(Constant *LHS, Constant *RHS) const {
80 Constant *CreateSRem(Constant *LHS, Constant *RHS) const {
80 Constant *CreateSRem(Constant *LHS, Constant *RHS) const {
80 Constant *CreateSRem(Constant *LHS, Constant *RHS) const {
84 Constant *CreateFRem(Constant *LHS, Constant *RHS) const {
84 Constant *CreateFRem(Constant *LHS, Constant *RHS) const {
84 Constant *CreateFRem(Constant *LHS, Constant *RHS) const {
88 Constant *CreateShl(Constant *LHS, Constant *RHS,
88 Constant *CreateShl(Constant *LHS, Constant *RHS,
88 Constant *CreateShl(Constant *LHS, Constant *RHS,
93 Constant *CreateLShr(Constant *LHS, Constant *RHS,
93 Constant *CreateLShr(Constant *LHS, Constant *RHS,
93 Constant *CreateLShr(Constant *LHS, Constant *RHS,
98 Constant *CreateAShr(Constant *LHS, Constant *RHS,
98 Constant *CreateAShr(Constant *LHS, Constant *RHS,
98 Constant *CreateAShr(Constant *LHS, Constant *RHS,
103 Constant *CreateAnd(Constant *LHS, Constant *RHS) const {
103 Constant *CreateAnd(Constant *LHS, Constant *RHS) const {
103 Constant *CreateAnd(Constant *LHS, Constant *RHS) const {
107 Constant *CreateOr(Constant *LHS, Constant *RHS) const {
107 Constant *CreateOr(Constant *LHS, Constant *RHS) const {
107 Constant *CreateOr(Constant *LHS, Constant *RHS) const {
111 Constant *CreateXor(Constant *LHS, Constant *RHS) const {
111 Constant *CreateXor(Constant *LHS, Constant *RHS) const {
111 Constant *CreateXor(Constant *LHS, Constant *RHS) const {
115 Constant *CreateBinOp(Instruction::BinaryOps Opc,
116 Constant *LHS, Constant *RHS) const {
116 Constant *LHS, Constant *RHS) const {
124 Constant *CreateNeg(Constant *C,
124 Constant *CreateNeg(Constant *C,
129 Constant *CreateFNeg(Constant *C) const {
129 Constant *CreateFNeg(Constant *C) const {
133 Constant *CreateNot(Constant *C) const {
133 Constant *CreateNot(Constant *C) const {
137 Constant *CreateUnOp(Instruction::UnaryOps Opc, Constant *C) const {
137 Constant *CreateUnOp(Instruction::UnaryOps Opc, Constant *C) const {
145 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
145 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
146 ArrayRef<Constant *> IdxList) const {
150 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
150 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
150 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
157 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
157 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
162 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
162 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
163 ArrayRef<Constant *> IdxList) const {
167 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
167 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
168 Constant *Idx) const {
175 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
175 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
184 Constant *CreateCast(Instruction::CastOps Op, Constant *C,
184 Constant *CreateCast(Instruction::CastOps Op, Constant *C,
189 Constant *CreatePointerCast(Constant *C, Type *DestTy) const {
189 Constant *CreatePointerCast(Constant *C, Type *DestTy) const {
193 Constant *CreatePointerBitCastOrAddrSpaceCast(Constant *C,
193 Constant *CreatePointerBitCastOrAddrSpaceCast(Constant *C,
198 Constant *CreateIntCast(Constant *C, Type *DestTy,
198 Constant *CreateIntCast(Constant *C, Type *DestTy,
203 Constant *CreateFPCast(Constant *C, Type *DestTy) const {
203 Constant *CreateFPCast(Constant *C, Type *DestTy) const {
207 Constant *CreateBitCast(Constant *C, Type *DestTy) const {
207 Constant *CreateBitCast(Constant *C, Type *DestTy) const {
211 Constant *CreateIntToPtr(Constant *C, Type *DestTy) const {
211 Constant *CreateIntToPtr(Constant *C, Type *DestTy) const {
215 Constant *CreatePtrToInt(Constant *C, Type *DestTy) const {
215 Constant *CreatePtrToInt(Constant *C, Type *DestTy) const {
219 Constant *CreateZExtOrBitCast(Constant *C, Type *DestTy) const {
219 Constant *CreateZExtOrBitCast(Constant *C, Type *DestTy) const {
223 Constant *CreateSExtOrBitCast(Constant *C, Type *DestTy) const {
223 Constant *CreateSExtOrBitCast(Constant *C, Type *DestTy) const {
227 Constant *CreateTruncOrBitCast(Constant *C, Type *DestTy) const {
227 Constant *CreateTruncOrBitCast(Constant *C, Type *DestTy) const {
235 Constant *CreateICmp(CmpInst::Predicate P, Constant *LHS,
235 Constant *CreateICmp(CmpInst::Predicate P, Constant *LHS,
236 Constant *RHS) const {
240 Constant *CreateFCmp(CmpInst::Predicate P, Constant *LHS,
240 Constant *CreateFCmp(CmpInst::Predicate P, Constant *LHS,
241 Constant *RHS) const {
249 Constant *CreateSelect(Constant *C, Constant *True, Constant *False) const {
249 Constant *CreateSelect(Constant *C, Constant *True, Constant *False) const {
249 Constant *CreateSelect(Constant *C, Constant *True, Constant *False) const {
249 Constant *CreateSelect(Constant *C, Constant *True, Constant *False) const {
253 Constant *CreateExtractElement(Constant *Vec, Constant *Idx) const {
253 Constant *CreateExtractElement(Constant *Vec, Constant *Idx) const {
253 Constant *CreateExtractElement(Constant *Vec, Constant *Idx) const {
257 Constant *CreateInsertElement(Constant *Vec, Constant *NewElt,
257 Constant *CreateInsertElement(Constant *Vec, Constant *NewElt,
257 Constant *CreateInsertElement(Constant *Vec, Constant *NewElt,
258 Constant *Idx) const {
262 Constant *CreateShuffleVector(Constant *V1, Constant *V2,
262 Constant *CreateShuffleVector(Constant *V1, Constant *V2,
262 Constant *CreateShuffleVector(Constant *V1, Constant *V2,
263 Constant *Mask) const {
267 Constant *CreateExtractValue(Constant *Agg,
267 Constant *CreateExtractValue(Constant *Agg,
272 Constant *CreateInsertValue(Constant *Agg, Constant *Val,
272 Constant *CreateInsertValue(Constant *Agg, Constant *Val,
272 Constant *CreateInsertValue(Constant *Agg, Constant *Val,
include/llvm/IR/Constants.h 57 class ConstantData : public Constant {
97 static Constant *getTrue(Type *Ty);
98 static Constant *getFalse(Type *Ty);
102 static Constant *get(Type *Ty, uint64_t V, bool isSigned = false);
119 static Constant *getSigned(Type *Ty, int64_t V);
132 static Constant *get(Type* Ty, const APInt& V);
278 static Constant *getZeroValueForNegation(Type *Ty);
284 static Constant *get(Type* Ty, double V);
288 static Constant *get(Type *Ty, const APFloat &V);
290 static Constant *get(Type* Ty, StringRef Str);
292 static Constant *getNaN(Type *Ty, bool Negative = false, uint64_t Payload = 0);
293 static Constant *getQNaN(Type *Ty, bool Negative = false,
295 static Constant *getSNaN(Type *Ty, bool Negative = false,
297 static Constant *getNegativeZero(Type *Ty);
298 static Constant *getInfinity(Type *Ty, bool Negative = false);
355 Constant *getSequentialElement() const;
359 Constant *getStructElement(unsigned Elt) const;
363 Constant *getElementValue(Constant *C) const;
363 Constant *getElementValue(Constant *C) const;
366 Constant *getElementValue(unsigned Idx) const;
389 class ConstantAggregate : public Constant {
391 ConstantAggregate(CompositeType *T, ValueTy VT, ArrayRef<Constant *> V);
417 ConstantArray(ArrayType *T, ArrayRef<Constant *> Val);
424 static Constant *get(ArrayType *T, ArrayRef<Constant*> V);
424 static Constant *get(ArrayType *T, ArrayRef<Constant*> V);
427 static Constant *getImpl(ArrayType *T, ArrayRef<Constant *> V);
427 static Constant *getImpl(ArrayType *T, ArrayRef<Constant *> V);
449 ConstantStruct(StructType *T, ArrayRef<Constant *> Val);
456 static Constant *get(StructType *T, ArrayRef<Constant*> V);
456 static Constant *get(StructType *T, ArrayRef<Constant*> V);
459 static typename std::enable_if<are_base_of<Constant, Csts...>::value,
459 static typename std::enable_if<are_base_of<Constant, Csts...>::value,
460 Constant *>::type
461 get(StructType *T, Csts *... Vs) {
462 SmallVector<Constant *, 8> Values({Vs...});
468 static Constant *getAnon(ArrayRef<Constant*> V, bool Packed = false) {
468 static Constant *getAnon(ArrayRef<Constant*> V, bool Packed = false) {
471 static Constant *getAnon(LLVMContext &Ctx,
472 ArrayRef<Constant*> V, bool Packed = false) {
478 static StructType *getTypeForElements(ArrayRef<Constant*> V,
482 ArrayRef<Constant*> V,
503 ConstantVector(VectorType *T, ArrayRef<Constant *> Val);
510 static Constant *get(ArrayRef<Constant*> V);
510 static Constant *get(ArrayRef<Constant*> V);
513 static Constant *getImpl(ArrayRef<Constant *> V);
513 static Constant *getImpl(ArrayRef<Constant *> V);
517 static Constant *getSplat(unsigned NumElts, Constant *Elt);
517 static Constant *getSplat(unsigned NumElts, Constant *Elt);
527 Constant *getSplatValue() const;
594 static Constant *getImpl(StringRef Bytes, Type *Ty);
628 Constant *getElementAsConstant(unsigned i) const;
702 static Constant *get(LLVMContext &Context, ArrayRef<ElementTy> Elts) {
711 static Constant *get(LLVMContext &Context, ArrayTy &Elts) {
721 static Constant *getRaw(StringRef Data, uint64_t NumElements, Type *ElementTy) {
731 static Constant *getFP(LLVMContext &Context, ArrayRef<uint16_t> Elts);
732 static Constant *getFP(LLVMContext &Context, ArrayRef<uint32_t> Elts);
733 static Constant *getFP(LLVMContext &Context, ArrayRef<uint64_t> Elts);
740 static Constant *getString(LLVMContext &Context, StringRef Initializer,
773 static Constant *get(LLVMContext &Context, ArrayRef<uint8_t> Elts);
774 static Constant *get(LLVMContext &Context, ArrayRef<uint16_t> Elts);
775 static Constant *get(LLVMContext &Context, ArrayRef<uint32_t> Elts);
776 static Constant *get(LLVMContext &Context, ArrayRef<uint64_t> Elts);
777 static Constant *get(LLVMContext &Context, ArrayRef<float> Elts);
778 static Constant *get(LLVMContext &Context, ArrayRef<double> Elts);
785 static Constant *getFP(LLVMContext &Context, ArrayRef<uint16_t> Elts);
786 static Constant *getFP(LLVMContext &Context, ArrayRef<uint32_t> Elts);
787 static Constant *getFP(LLVMContext &Context, ArrayRef<uint64_t> Elts);
792 static Constant *getSplat(unsigned NumElts, Constant *Elt);
792 static Constant *getSplat(unsigned NumElts, Constant *Elt);
800 Constant *getSplatValue() const;
839 class BlockAddress final : public Constant {
888 class ConstantExpr : public Constant {
910 static Constant *getAlignOf(Type *Ty);
916 static Constant *getSizeOf(Type *Ty);
921 static Constant *getOffsetOf(StructType *STy, unsigned FieldNo);
926 static Constant *getOffsetOf(Type *Ty, Constant *FieldNo);
926 static Constant *getOffsetOf(Type *Ty, Constant *FieldNo);
928 static Constant *getNeg(Constant *C, bool HasNUW = false, bool HasNSW =false);
928 static Constant *getNeg(Constant *C, bool HasNUW = false, bool HasNSW =false);
929 static Constant *getFNeg(Constant *C);
929 static Constant *getFNeg(Constant *C);
930 static Constant *getNot(Constant *C);
930 static Constant *getNot(Constant *C);
931 static Constant *getAdd(Constant *C1, Constant *C2,
931 static Constant *getAdd(Constant *C1, Constant *C2,
931 static Constant *getAdd(Constant *C1, Constant *C2,
933 static Constant *getFAdd(Constant *C1, Constant *C2);
933 static Constant *getFAdd(Constant *C1, Constant *C2);
933 static Constant *getFAdd(Constant *C1, Constant *C2);
934 static Constant *getSub(Constant *C1, Constant *C2,
934 static Constant *getSub(Constant *C1, Constant *C2,
934 static Constant *getSub(Constant *C1, Constant *C2,
936 static Constant *getFSub(Constant *C1, Constant *C2);
936 static Constant *getFSub(Constant *C1, Constant *C2);
936 static Constant *getFSub(Constant *C1, Constant *C2);
937 static Constant *getMul(Constant *C1, Constant *C2,
937 static Constant *getMul(Constant *C1, Constant *C2,
937 static Constant *getMul(Constant *C1, Constant *C2,
939 static Constant *getFMul(Constant *C1, Constant *C2);
939 static Constant *getFMul(Constant *C1, Constant *C2);
939 static Constant *getFMul(Constant *C1, Constant *C2);
940 static Constant *getUDiv(Constant *C1, Constant *C2, bool isExact = false);
940 static Constant *getUDiv(Constant *C1, Constant *C2, bool isExact = false);
940 static Constant *getUDiv(Constant *C1, Constant *C2, bool isExact = false);
941 static Constant *getSDiv(Constant *C1, Constant *C2, bool isExact = false);
941 static Constant *getSDiv(Constant *C1, Constant *C2, bool isExact = false);
941 static Constant *getSDiv(Constant *C1, Constant *C2, bool isExact = false);
942 static Constant *getFDiv(Constant *C1, Constant *C2);
942 static Constant *getFDiv(Constant *C1, Constant *C2);
942 static Constant *getFDiv(Constant *C1, Constant *C2);
943 static Constant *getURem(Constant *C1, Constant *C2);
943 static Constant *getURem(Constant *C1, Constant *C2);
943 static Constant *getURem(Constant *C1, Constant *C2);
944 static Constant *getSRem(Constant *C1, Constant *C2);
944 static Constant *getSRem(Constant *C1, Constant *C2);
944 static Constant *getSRem(Constant *C1, Constant *C2);
945 static Constant *getFRem(Constant *C1, Constant *C2);
945 static Constant *getFRem(Constant *C1, Constant *C2);
945 static Constant *getFRem(Constant *C1, Constant *C2);
946 static Constant *getAnd(Constant *C1, Constant *C2);
946 static Constant *getAnd(Constant *C1, Constant *C2);
946 static Constant *getAnd(Constant *C1, Constant *C2);
947 static Constant *getOr(Constant *C1, Constant *C2);
947 static Constant *getOr(Constant *C1, Constant *C2);
947 static Constant *getOr(Constant *C1, Constant *C2);
948 static Constant *getXor(Constant *C1, Constant *C2);
948 static Constant *getXor(Constant *C1, Constant *C2);
948 static Constant *getXor(Constant *C1, Constant *C2);
949 static Constant *getShl(Constant *C1, Constant *C2,
949 static Constant *getShl(Constant *C1, Constant *C2,
949 static Constant *getShl(Constant *C1, Constant *C2,
951 static Constant *getLShr(Constant *C1, Constant *C2, bool isExact = false);
951 static Constant *getLShr(Constant *C1, Constant *C2, bool isExact = false);
951 static Constant *getLShr(Constant *C1, Constant *C2, bool isExact = false);
952 static Constant *getAShr(Constant *C1, Constant *C2, bool isExact = false);
952 static Constant *getAShr(Constant *C1, Constant *C2, bool isExact = false);
952 static Constant *getAShr(Constant *C1, Constant *C2, bool isExact = false);
953 static Constant *getTrunc(Constant *C, Type *Ty, bool OnlyIfReduced = false);
953 static Constant *getTrunc(Constant *C, Type *Ty, bool OnlyIfReduced = false);
954 static Constant *getSExt(Constant *C, Type *Ty, bool OnlyIfReduced = false);
954 static Constant *getSExt(Constant *C, Type *Ty, bool OnlyIfReduced = false);
955 static Constant *getZExt(Constant *C, Type *Ty, bool OnlyIfReduced = false);
955 static Constant *getZExt(Constant *C, Type *Ty, bool OnlyIfReduced = false);
956 static Constant *getFPTrunc(Constant *C, Type *Ty,
956 static Constant *getFPTrunc(Constant *C, Type *Ty,
958 static Constant *getFPExtend(Constant *C, Type *Ty,
958 static Constant *getFPExtend(Constant *C, Type *Ty,
960 static Constant *getUIToFP(Constant *C, Type *Ty, bool OnlyIfReduced = false);
960 static Constant *getUIToFP(Constant *C, Type *Ty, bool OnlyIfReduced = false);
961 static Constant *getSIToFP(Constant *C, Type *Ty, bool OnlyIfReduced = false);
961 static Constant *getSIToFP(Constant *C, Type *Ty, bool OnlyIfReduced = false);
962 static Constant *getFPToUI(Constant *C, Type *Ty, bool OnlyIfReduced = false);
962 static Constant *getFPToUI(Constant *C, Type *Ty, bool OnlyIfReduced = false);
963 static Constant *getFPToSI(Constant *C, Type *Ty, bool OnlyIfReduced = false);
963 static Constant *getFPToSI(Constant *C, Type *Ty, bool OnlyIfReduced = false);
964 static Constant *getPtrToInt(Constant *C, Type *Ty,
964 static Constant *getPtrToInt(Constant *C, Type *Ty,
966 static Constant *getIntToPtr(Constant *C, Type *Ty,
966 static Constant *getIntToPtr(Constant *C, Type *Ty,
968 static Constant *getBitCast(Constant *C, Type *Ty,
968 static Constant *getBitCast(Constant *C, Type *Ty,
970 static Constant *getAddrSpaceCast(Constant *C, Type *Ty,
970 static Constant *getAddrSpaceCast(Constant *C, Type *Ty,
973 static Constant *getNSWNeg(Constant *C) { return getNeg(C, false, true); }
973 static Constant *getNSWNeg(Constant *C) { return getNeg(C, false, true); }
974 static Constant *getNUWNeg(Constant *C) { return getNeg(C, true, false); }
974 static Constant *getNUWNeg(Constant *C) { return getNeg(C, true, false); }
976 static Constant *getNSWAdd(Constant *C1, Constant *C2) {
976 static Constant *getNSWAdd(Constant *C1, Constant *C2) {
976 static Constant *getNSWAdd(Constant *C1, Constant *C2) {
980 static Constant *getNUWAdd(Constant *C1, Constant *C2) {
980 static Constant *getNUWAdd(Constant *C1, Constant *C2) {
980 static Constant *getNUWAdd(Constant *C1, Constant *C2) {
984 static Constant *getNSWSub(Constant *C1, Constant *C2) {
984 static Constant *getNSWSub(Constant *C1, Constant *C2) {
984 static Constant *getNSWSub(Constant *C1, Constant *C2) {
988 static Constant *getNUWSub(Constant *C1, Constant *C2) {
988 static Constant *getNUWSub(Constant *C1, Constant *C2) {
988 static Constant *getNUWSub(Constant *C1, Constant *C2) {
992 static Constant *getNSWMul(Constant *C1, Constant *C2) {
992 static Constant *getNSWMul(Constant *C1, Constant *C2) {
992 static Constant *getNSWMul(Constant *C1, Constant *C2) {
996 static Constant *getNUWMul(Constant *C1, Constant *C2) {
996 static Constant *getNUWMul(Constant *C1, Constant *C2) {
996 static Constant *getNUWMul(Constant *C1, Constant *C2) {
1000 static Constant *getNSWShl(Constant *C1, Constant *C2) {
1000 static Constant *getNSWShl(Constant *C1, Constant *C2) {
1000 static Constant *getNSWShl(Constant *C1, Constant *C2) {
1004 static Constant *getNUWShl(Constant *C1, Constant *C2) {
1004 static Constant *getNUWShl(Constant *C1, Constant *C2) {
1004 static Constant *getNUWShl(Constant *C1, Constant *C2) {
1008 static Constant *getExactSDiv(Constant *C1, Constant *C2) {
1008 static Constant *getExactSDiv(Constant *C1, Constant *C2) {
1008 static Constant *getExactSDiv(Constant *C1, Constant *C2) {
1012 static Constant *getExactUDiv(Constant *C1, Constant *C2) {
1012 static Constant *getExactUDiv(Constant *C1, Constant *C2) {
1012 static Constant *getExactUDiv(Constant *C1, Constant *C2) {
1016 static Constant *getExactAShr(Constant *C1, Constant *C2) {
1016 static Constant *getExactAShr(Constant *C1, Constant *C2) {
1016 static Constant *getExactAShr(Constant *C1, Constant *C2) {
1020 static Constant *getExactLShr(Constant *C1, Constant *C2) {
1020 static Constant *getExactLShr(Constant *C1, Constant *C2) {
1020 static Constant *getExactLShr(Constant *C1, Constant *C2) {
1031 static Constant *getBinOpIdentity(unsigned Opcode, Type *Ty,
1038 static Constant *getBinOpAbsorber(unsigned Opcode, Type *Ty);
1049 static Constant *getCast(unsigned ops, Constant *C, Type *Ty,
1049 static Constant *getCast(unsigned ops, Constant *C, Type *Ty,
1053 static Constant *getZExtOrBitCast(
1054 Constant *C, ///< The constant to zext or bitcast
1059 static Constant *getSExtOrBitCast(
1060 Constant *C, ///< The constant to sext or bitcast
1065 static Constant *getTruncOrBitCast(
1066 Constant *C, ///< The constant to trunc or bitcast
1072 static Constant *getPointerCast(
1073 Constant *C, ///< The pointer value to be casted (operand 0)
1079 static Constant *getPointerBitCastOrAddrSpaceCast(
1080 Constant *C, ///< The constant to addrspacecast or bitcast
1085 static Constant *getIntegerCast(
1086 Constant *C, ///< The integer constant to be casted
1092 static Constant *getFPCast(
1093 Constant *C, ///< The integer constant to be casted
1117 static Constant *getSelect(Constant *C, Constant *V1, Constant *V2,
1117 static Constant *getSelect(Constant *C, Constant *V1, Constant *V2,
1117 static Constant *getSelect(Constant *C, Constant *V1, Constant *V2,
1117 static Constant *getSelect(Constant *C, Constant *V1, Constant *V2,
1124 static Constant *get(unsigned Opcode, Constant *C1, unsigned Flags = 0,
1124 static Constant *get(unsigned Opcode, Constant *C1, unsigned Flags = 0,
1131 static Constant *get(unsigned Opcode, Constant *C1, Constant *C2,
1131 static Constant *get(unsigned Opcode, Constant *C1, Constant *C2,
1131 static Constant *get(unsigned Opcode, Constant *C1, Constant *C2,
1137 static Constant *getCompare(unsigned short pred, Constant *C1, Constant *C2,
1137 static Constant *getCompare(unsigned short pred, Constant *C1, Constant *C2,
1137 static Constant *getCompare(unsigned short pred, Constant *C1, Constant *C2,
1143 static Constant *getICmp(unsigned short pred, Constant *LHS, Constant *RHS,
1143 static Constant *getICmp(unsigned short pred, Constant *LHS, Constant *RHS,
1143 static Constant *getICmp(unsigned short pred, Constant *LHS, Constant *RHS,
1145 static Constant *getFCmp(unsigned short pred, Constant *LHS, Constant *RHS,
1145 static Constant *getFCmp(unsigned short pred, Constant *LHS, Constant *RHS,
1145 static Constant *getFCmp(unsigned short pred, Constant *LHS, Constant *RHS,
1153 static Constant *getGetElementPtr(Type *Ty, Constant *C,
1153 static Constant *getGetElementPtr(Type *Ty, Constant *C,
1154 ArrayRef<Constant *> IdxList,
1162 static Constant *getGetElementPtr(Type *Ty, Constant *C, Constant *Idx,
1162 static Constant *getGetElementPtr(Type *Ty, Constant *C, Constant *Idx,
1162 static Constant *getGetElementPtr(Type *Ty, Constant *C, Constant *Idx,
1172 static Constant *getGetElementPtr(Type *Ty, Constant *C,
1172 static Constant *getGetElementPtr(Type *Ty, Constant *C,
1180 static Constant *getInBoundsGetElementPtr(Type *Ty, Constant *C,
1180 static Constant *getInBoundsGetElementPtr(Type *Ty, Constant *C,
1181 ArrayRef<Constant *> IdxList) {
1184 static Constant *getInBoundsGetElementPtr(Type *Ty, Constant *C,
1184 static Constant *getInBoundsGetElementPtr(Type *Ty, Constant *C,
1185 Constant *Idx) {
1191 static Constant *getInBoundsGetElementPtr(Type *Ty, Constant *C,
1191 static Constant *getInBoundsGetElementPtr(Type *Ty, Constant *C,
1196 static Constant *getExtractElement(Constant *Vec, Constant *Idx,
1196 static Constant *getExtractElement(Constant *Vec, Constant *Idx,
1196 static Constant *getExtractElement(Constant *Vec, Constant *Idx,
1198 static Constant *getInsertElement(Constant *Vec, Constant *Elt, Constant *Idx,
1198 static Constant *getInsertElement(Constant *Vec, Constant *Elt, Constant *Idx,
1198 static Constant *getInsertElement(Constant *Vec, Constant *Elt, Constant *Idx,
1198 static Constant *getInsertElement(Constant *Vec, Constant *Elt, Constant *Idx,
1200 static Constant *getShuffleVector(Constant *V1, Constant *V2, Constant *Mask,
1200 static Constant *getShuffleVector(Constant *V1, Constant *V2, Constant *Mask,
1200 static Constant *getShuffleVector(Constant *V1, Constant *V2, Constant *Mask,
1200 static Constant *getShuffleVector(Constant *V1, Constant *V2, Constant *Mask,
1202 static Constant *getExtractValue(Constant *Agg, ArrayRef<unsigned> Idxs,
1202 static Constant *getExtractValue(Constant *Agg, ArrayRef<unsigned> Idxs,
1204 static Constant *getInsertValue(Constant *Agg, Constant *Val,
1204 static Constant *getInsertValue(Constant *Agg, Constant *Val,
1204 static Constant *getInsertValue(Constant *Agg, Constant *Val,
1224 Constant *getWithOperandReplaced(unsigned OpNo, Constant *Op) const;
1224 Constant *getWithOperandReplaced(unsigned OpNo, Constant *Op) const;
1229 Constant *getWithOperands(ArrayRef<Constant*> Ops) const {
1229 Constant *getWithOperands(ArrayRef<Constant*> Ops) const {
1242 Constant *getWithOperands(ArrayRef<Constant *> Ops, Type *Ty,
1242 Constant *getWithOperands(ArrayRef<Constant *> Ops, Type *Ty,
1308 UndefValue *getElementValue(Constant *C) const;
include/llvm/IR/DIBuilder.h 293 Constant *Discriminant,
324 Constant *Val,
455 Constant *Val);
include/llvm/IR/DebugInfoMetadata.h 860 Constant *getStorageOffsetInBits() const {
867 Constant *getConstant() const {
873 Constant *getDiscriminantValue() const {
include/llvm/IR/Function.h 742 Constant *getPersonalityFn() const;
743 void setPersonalityFn(Constant *Fn);
751 Constant *getPrefixData() const;
752 void setPrefixData(Constant *PrefixData);
760 Constant *getPrologueData() const;
761 void setPrologueData(Constant *PrologueData);
841 template<int Idx> void setHungoffOperand(Constant *C);
include/llvm/IR/GlobalAlias.h 32 const Twine &Name, Constant *Aliasee, Module *Parent);
42 Constant *Aliasee, Module *Parent);
72 void setAliasee(Constant *Aliasee);
73 const Constant *getAliasee() const {
76 Constant *getAliasee() {
include/llvm/IR/GlobalIFunc.h 37 const Twine &Name, Constant *Resolver, Module *Parent);
47 Constant *Resolver, Module *Parent);
57 void setResolver(Constant *Resolver) {
60 const Constant *getResolver() const {
63 Constant *getResolver() {
include/llvm/IR/GlobalIndirectSymbol.h 31 LinkageTypes Linkage, const Twine &Name, Constant *Symbol);
50 void setIndirectSymbol(Constant *Symbol) {
53 const Constant *getIndirectSymbol() const {
56 Constant *getIndirectSymbol() {
include/llvm/IR/GlobalValue.h 44 class GlobalValue : public Constant {
include/llvm/IR/GlobalVariable.h 55 Constant *Initializer = nullptr, const Twine &Name = "",
61 LinkageTypes Linkage, Constant *Initializer,
136 inline const Constant *getInitializer() const {
140 inline Constant *getInitializer() {
147 void setInitializer(Constant *InitVal);
include/llvm/IR/IRBuilder.h 845 InstTy *Insert(InstTy *I, const Twine &Name = "") const {
845 InstTy *Insert(InstTy *I, const Twine &Name = "") const {
852 Constant *Insert(Constant *C, const Twine& = "") const {
852 Constant *Insert(Constant *C, const Twine& = "") const {
1095 auto *LC = dyn_cast<Constant>(L);
1095 auto *LC = dyn_cast<Constant>(L);
1096 auto *RC = dyn_cast<Constant>(R);
1096 auto *RC = dyn_cast<Constant>(R);
1135 if (auto *LC = dyn_cast<Constant>(LHS))
1135 if (auto *LC = dyn_cast<Constant>(LHS))
1136 if (auto *RC = dyn_cast<Constant>(RHS))
1136 if (auto *RC = dyn_cast<Constant>(RHS))
1152 if (auto *LC = dyn_cast<Constant>(LHS))
1152 if (auto *LC = dyn_cast<Constant>(LHS))
1153 if (auto *RC = dyn_cast<Constant>(RHS))
1153 if (auto *RC = dyn_cast<Constant>(RHS))
1169 if (auto *LC = dyn_cast<Constant>(LHS))
1169 if (auto *LC = dyn_cast<Constant>(LHS))
1170 if (auto *RC = dyn_cast<Constant>(RHS))
1170 if (auto *RC = dyn_cast<Constant>(RHS))
1186 if (auto *LC = dyn_cast<Constant>(LHS))
1186 if (auto *LC = dyn_cast<Constant>(LHS))
1187 if (auto *RC = dyn_cast<Constant>(RHS))
1187 if (auto *RC = dyn_cast<Constant>(RHS))
1200 if (auto *LC = dyn_cast<Constant>(LHS))
1200 if (auto *LC = dyn_cast<Constant>(LHS))
1201 if (auto *RC = dyn_cast<Constant>(RHS))
1201 if (auto *RC = dyn_cast<Constant>(RHS))
1224 if (auto *LC = dyn_cast<Constant>(LHS))
1224 if (auto *LC = dyn_cast<Constant>(LHS))
1225 if (auto *RC = dyn_cast<Constant>(RHS))
1225 if (auto *RC = dyn_cast<Constant>(RHS))
1245 if (auto *LC = dyn_cast<Constant>(LHS))
1245 if (auto *LC = dyn_cast<Constant>(LHS))
1246 if (auto *RC = dyn_cast<Constant>(RHS))
1246 if (auto *RC = dyn_cast<Constant>(RHS))
1265 if (auto *LC = dyn_cast<Constant>(LHS))
1265 if (auto *LC = dyn_cast<Constant>(LHS))
1266 if (auto *RC = dyn_cast<Constant>(RHS))
1266 if (auto *RC = dyn_cast<Constant>(RHS))
1284 if (auto *RC = dyn_cast<Constant>(RHS)) {
1284 if (auto *RC = dyn_cast<Constant>(RHS)) {
1287 if (auto *LC = dyn_cast<Constant>(LHS))
1287 if (auto *LC = dyn_cast<Constant>(LHS))
1310 if (auto *RC = dyn_cast<Constant>(RHS)) {
1310 if (auto *RC = dyn_cast<Constant>(RHS)) {
1313 if (auto *LC = dyn_cast<Constant>(LHS))
1313 if (auto *LC = dyn_cast<Constant>(LHS))
1504 if (auto *VC = dyn_cast<Constant>(V))
1504 if (auto *VC = dyn_cast<Constant>(V))
1522 if (auto *VC = dyn_cast<Constant>(V))
1522 if (auto *VC = dyn_cast<Constant>(V))
1532 if (auto *VC = dyn_cast<Constant>(V))
1532 if (auto *VC = dyn_cast<Constant>(V))
1540 if (auto *VC = dyn_cast<Constant>(V))
1540 if (auto *VC = dyn_cast<Constant>(V))
1548 if (auto *VC = dyn_cast<Constant>(V))
1548 if (auto *VC = dyn_cast<Constant>(V))
1699 if (auto *PC = dyn_cast<Constant>(Ptr)) {
1699 if (auto *PC = dyn_cast<Constant>(Ptr)) {
1703 if (!isa<Constant>(IdxList[i]))
1718 if (auto *PC = dyn_cast<Constant>(Ptr)) {
1718 if (auto *PC = dyn_cast<Constant>(Ptr)) {
1722 if (!isa<Constant>(IdxList[i]))
1736 if (auto *PC = dyn_cast<Constant>(Ptr))
1736 if (auto *PC = dyn_cast<Constant>(Ptr))
1737 if (auto *IC = dyn_cast<Constant>(Idx))
1737 if (auto *IC = dyn_cast<Constant>(Idx))
1744 if (auto *PC = dyn_cast<Constant>(Ptr))
1744 if (auto *PC = dyn_cast<Constant>(Ptr))
1745 if (auto *IC = dyn_cast<Constant>(Idx))
1745 if (auto *IC = dyn_cast<Constant>(Idx))
1758 if (auto *PC = dyn_cast<Constant>(Ptr))
1758 if (auto *PC = dyn_cast<Constant>(Ptr))
1768 if (auto *PC = dyn_cast<Constant>(Ptr))
1768 if (auto *PC = dyn_cast<Constant>(Ptr))
1781 if (auto *PC = dyn_cast<Constant>(Ptr))
1781 if (auto *PC = dyn_cast<Constant>(Ptr))
1794 if (auto *PC = dyn_cast<Constant>(Ptr))
1794 if (auto *PC = dyn_cast<Constant>(Ptr))
1804 if (auto *PC = dyn_cast<Constant>(Ptr))
1804 if (auto *PC = dyn_cast<Constant>(Ptr))
1818 if (auto *PC = dyn_cast<Constant>(Ptr))
1818 if (auto *PC = dyn_cast<Constant>(Ptr))
1836 if (auto *PC = dyn_cast<Constant>(Ptr))
1836 if (auto *PC = dyn_cast<Constant>(Ptr))
1854 if (auto *PC = dyn_cast<Constant>(Ptr))
1854 if (auto *PC = dyn_cast<Constant>(Ptr))
1876 Constant *CreateGlobalStringPtr(StringRef Str, const Twine &Name = "",
1879 Constant *Zero = ConstantInt::get(Type::getInt32Ty(Context), 0);
1880 Constant *Indices[] = {Zero, Zero};
1993 if (auto *VC = dyn_cast<Constant>(V))
1993 if (auto *VC = dyn_cast<Constant>(V))
2002 if (auto *VC = dyn_cast<Constant>(V))
2002 if (auto *VC = dyn_cast<Constant>(V))
2011 if (auto *VC = dyn_cast<Constant>(V))
2011 if (auto *VC = dyn_cast<Constant>(V))
2020 if (auto *VC = dyn_cast<Constant>(V))
2020 if (auto *VC = dyn_cast<Constant>(V))
2029 if (auto *VC = dyn_cast<Constant>(V))
2029 if (auto *VC = dyn_cast<Constant>(V))
2039 if (auto *VC = dyn_cast<Constant>(V)) {
2039 if (auto *VC = dyn_cast<Constant>(V)) {
2052 if (auto *VC = dyn_cast<Constant>(V))
2052 if (auto *VC = dyn_cast<Constant>(V))
2072 if (auto *VC = dyn_cast<Constant>(V))
2072 if (auto *VC = dyn_cast<Constant>(V))
2231 if (auto *LC = dyn_cast<Constant>(LHS))
2231 if (auto *LC = dyn_cast<Constant>(LHS))
2232 if (auto *RC = dyn_cast<Constant>(RHS))
2232 if (auto *RC = dyn_cast<Constant>(RHS))
2239 if (auto *LC = dyn_cast<Constant>(LHS))
2239 if (auto *LC = dyn_cast<Constant>(LHS))
2240 if (auto *RC = dyn_cast<Constant>(RHS))
2240 if (auto *RC = dyn_cast<Constant>(RHS))
2311 if (auto *CC = dyn_cast<Constant>(C))
2311 if (auto *CC = dyn_cast<Constant>(C))
2312 if (auto *TC = dyn_cast<Constant>(True))
2312 if (auto *TC = dyn_cast<Constant>(True))
2313 if (auto *FC = dyn_cast<Constant>(False))
2313 if (auto *FC = dyn_cast<Constant>(False))
2333 if (auto *VC = dyn_cast<Constant>(Vec))
2333 if (auto *VC = dyn_cast<Constant>(Vec))
2334 if (auto *IC = dyn_cast<Constant>(Idx))
2334 if (auto *IC = dyn_cast<Constant>(Idx))
2346 if (auto *VC = dyn_cast<Constant>(Vec))
2346 if (auto *VC = dyn_cast<Constant>(Vec))
2347 if (auto *NC = dyn_cast<Constant>(NewElt))
2347 if (auto *NC = dyn_cast<Constant>(NewElt))
2348 if (auto *IC = dyn_cast<Constant>(Idx))
2348 if (auto *IC = dyn_cast<Constant>(Idx))
2360 if (auto *V1C = dyn_cast<Constant>(V1))
2360 if (auto *V1C = dyn_cast<Constant>(V1))
2361 if (auto *V2C = dyn_cast<Constant>(V2))
2361 if (auto *V2C = dyn_cast<Constant>(V2))
2362 if (auto *MC = dyn_cast<Constant>(Mask))
2362 if (auto *MC = dyn_cast<Constant>(Mask))
2376 if (auto *AggC = dyn_cast<Constant>(Agg))
2376 if (auto *AggC = dyn_cast<Constant>(Agg))
2384 if (auto *AggC = dyn_cast<Constant>(Agg))
2384 if (auto *AggC = dyn_cast<Constant>(Agg))
2385 if (auto *ValC = dyn_cast<Constant>(Val))
2385 if (auto *ValC = dyn_cast<Constant>(Val))
2401 return CreateICmpEQ(Arg, Constant::getNullValue(Arg->getType()),
2407 return CreateICmpNE(Arg, Constant::getNullValue(Arg->getType()),
2531 Constant *Zero = ConstantInt::get(Type::getInt32Ty(Context), 0);
2579 Constant *Zero = ConstantInt::get(Type::getInt32Ty(Context), 0);
include/llvm/IR/Instructions.h 1003 static Type *getIndexedType(Type *Ty, ArrayRef<Constant *> IdxList);
2014 Constant *getMask() const {
2015 return cast<Constant>(getOperand(2));
2020 static int getMaskValue(const Constant *Mask, unsigned Elt);
2030 static void getShuffleMask(const Constant *Mask,
2069 static bool isSingleSourceMask(const Constant *Mask) {
2090 static bool isIdentityMask(const Constant *Mask) {
2127 static bool isSelectMask(const Constant *Mask) {
2151 static bool isReverseMask(const Constant *Mask) {
2171 static bool isZeroEltSplatMask(const Constant *Mask) {
2221 static bool isTransposeMask(const Constant *Mask) {
2242 static bool isExtractSubvectorMask(const Constant *Mask, int NumSrcElts,
2845 void addClause(Constant *ClauseVal);
2849 Constant *getClause(unsigned Idx) const {
2850 return cast<Constant>(getOperandList()[Idx]);
include/llvm/IR/IntrinsicInst.h 513 void setElementSizeInBytes(Constant *V) {
603 void setVolatile(Constant *V) { setArgOperand(ARG_VOLATILE, V); }
include/llvm/IR/MDBuilder.h 45 ConstantAsMetadata *createConstant(Constant *C);
91 MDNode *createRange(Constant *Lo, Constant *Hi);
91 MDNode *createRange(Constant *Lo, Constant *Hi);
include/llvm/IR/Metadata.h 405 ConstantAsMetadata(Constant *C)
409 static ConstantAsMetadata *get(Constant *C) {
413 static ConstantAsMetadata *getIfExists(Constant *C) {
417 Constant *getValue() const {
418 return cast<Constant>(ValueAsMetadata::getValue());
514 static const bool value = std::is_base_of<Constant, V>::value &&
514 static const bool value = std::is_base_of<Constant, V>::value &&
518 static const bool value = std::is_base_of<Constant, V>::value &&
563 inline typename std::enable_if<detail::IsValidPointer<X, Y>::value, X *>::type
563 inline typename std::enable_if<detail::IsValidPointer<X, Y>::value, X *>::type
566 return cast<X>(V->getValue());
include/llvm/IR/Module.h 418 Constant *
424 Constant *getOrInsertGlobal(StringRef Name, Type *Ty);
491 void addModuleFlag(ModFlagBehavior Behavior, StringRef Key, Constant *Val);
include/llvm/IR/NoFolder.h 41 Instruction *CreateAdd(Constant *LHS, Constant *RHS,
41 Instruction *CreateAdd(Constant *LHS, Constant *RHS,
49 Instruction *CreateNSWAdd(Constant *LHS, Constant *RHS) const {
49 Instruction *CreateNSWAdd(Constant *LHS, Constant *RHS) const {
53 Instruction *CreateNUWAdd(Constant *LHS, Constant *RHS) const {
53 Instruction *CreateNUWAdd(Constant *LHS, Constant *RHS) const {
57 Instruction *CreateFAdd(Constant *LHS, Constant *RHS) const {
57 Instruction *CreateFAdd(Constant *LHS, Constant *RHS) const {
61 Instruction *CreateSub(Constant *LHS, Constant *RHS,
61 Instruction *CreateSub(Constant *LHS, Constant *RHS,
69 Instruction *CreateNSWSub(Constant *LHS, Constant *RHS) const {
69 Instruction *CreateNSWSub(Constant *LHS, Constant *RHS) const {
73 Instruction *CreateNUWSub(Constant *LHS, Constant *RHS) const {
73 Instruction *CreateNUWSub(Constant *LHS, Constant *RHS) const {
77 Instruction *CreateFSub(Constant *LHS, Constant *RHS) const {
77 Instruction *CreateFSub(Constant *LHS, Constant *RHS) const {
81 Instruction *CreateMul(Constant *LHS, Constant *RHS,
81 Instruction *CreateMul(Constant *LHS, Constant *RHS,
89 Instruction *CreateNSWMul(Constant *LHS, Constant *RHS) const {
89 Instruction *CreateNSWMul(Constant *LHS, Constant *RHS) const {
93 Instruction *CreateNUWMul(Constant *LHS, Constant *RHS) const {
93 Instruction *CreateNUWMul(Constant *LHS, Constant *RHS) const {
97 Instruction *CreateFMul(Constant *LHS, Constant *RHS) const {
97 Instruction *CreateFMul(Constant *LHS, Constant *RHS) const {
101 Instruction *CreateUDiv(Constant *LHS, Constant *RHS,
101 Instruction *CreateUDiv(Constant *LHS, Constant *RHS,
108 Instruction *CreateExactUDiv(Constant *LHS, Constant *RHS) const {
108 Instruction *CreateExactUDiv(Constant *LHS, Constant *RHS) const {
112 Instruction *CreateSDiv(Constant *LHS, Constant *RHS,
112 Instruction *CreateSDiv(Constant *LHS, Constant *RHS,
119 Instruction *CreateExactSDiv(Constant *LHS, Constant *RHS) const {
119 Instruction *CreateExactSDiv(Constant *LHS, Constant *RHS) const {
123 Instruction *CreateFDiv(Constant *LHS, Constant *RHS) const {
123 Instruction *CreateFDiv(Constant *LHS, Constant *RHS) const {
127 Instruction *CreateURem(Constant *LHS, Constant *RHS) const {
127 Instruction *CreateURem(Constant *LHS, Constant *RHS) const {
131 Instruction *CreateSRem(Constant *LHS, Constant *RHS) const {
131 Instruction *CreateSRem(Constant *LHS, Constant *RHS) const {
135 Instruction *CreateFRem(Constant *LHS, Constant *RHS) const {
135 Instruction *CreateFRem(Constant *LHS, Constant *RHS) const {
139 Instruction *CreateShl(Constant *LHS, Constant *RHS, bool HasNUW = false,
139 Instruction *CreateShl(Constant *LHS, Constant *RHS, bool HasNUW = false,
147 Instruction *CreateLShr(Constant *LHS, Constant *RHS,
147 Instruction *CreateLShr(Constant *LHS, Constant *RHS,
154 Instruction *CreateAShr(Constant *LHS, Constant *RHS,
154 Instruction *CreateAShr(Constant *LHS, Constant *RHS,
161 Instruction *CreateAnd(Constant *LHS, Constant *RHS) const {
161 Instruction *CreateAnd(Constant *LHS, Constant *RHS) const {
165 Instruction *CreateOr(Constant *LHS, Constant *RHS) const {
165 Instruction *CreateOr(Constant *LHS, Constant *RHS) const {
169 Instruction *CreateXor(Constant *LHS, Constant *RHS) const {
169 Instruction *CreateXor(Constant *LHS, Constant *RHS) const {
174 Constant *LHS, Constant *RHS) const {
174 Constant *LHS, Constant *RHS) const {
182 Instruction *CreateNeg(Constant *C,
190 Instruction *CreateNSWNeg(Constant *C) const {
194 Instruction *CreateNUWNeg(Constant *C) const {
198 Instruction *CreateFNeg(Constant *C) const {
202 Instruction *CreateNot(Constant *C) const {
206 Instruction *CreateUnOp(Instruction::UnaryOps Opc, Constant *C) const {
214 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
214 Constant *CreateGetElementPtr(Type *Ty, Constant *C,
215 ArrayRef<Constant *> IdxList) const {
219 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
219 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
219 Constant *CreateGetElementPtr(Type *Ty, Constant *C, Constant *Idx) const {
226 Instruction *CreateGetElementPtr(Type *Ty, Constant *C,
231 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
231 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
232 ArrayRef<Constant *> IdxList) const {
236 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
236 Constant *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
237 Constant *Idx) const {
244 Instruction *CreateInBoundsGetElementPtr(Type *Ty, Constant *C,
253 Instruction *CreateCast(Instruction::CastOps Op, Constant *C,
258 Instruction *CreatePointerCast(Constant *C, Type *DestTy) const {
262 Instruction *CreateIntCast(Constant *C, Type *DestTy,
267 Instruction *CreateFPCast(Constant *C, Type *DestTy) const {
271 Instruction *CreateBitCast(Constant *C, Type *DestTy) const {
275 Instruction *CreateIntToPtr(Constant *C, Type *DestTy) const {
279 Instruction *CreatePtrToInt(Constant *C, Type *DestTy) const {
283 Instruction *CreateZExtOrBitCast(Constant *C, Type *DestTy) const {
287 Instruction *CreateSExtOrBitCast(Constant *C, Type *DestTy) const {
291 Instruction *CreateTruncOrBitCast(Constant *C, Type *DestTy) const {
300 Constant *LHS, Constant *RHS) const {
300 Constant *LHS, Constant *RHS) const {
305 Constant *LHS, Constant *RHS) const {
305 Constant *LHS, Constant *RHS) const {
313 Instruction *CreateSelect(Constant *C,
314 Constant *True, Constant *False) const {
314 Constant *True, Constant *False) const {
318 Instruction *CreateExtractElement(Constant *Vec, Constant *Idx) const {
318 Instruction *CreateExtractElement(Constant *Vec, Constant *Idx) const {
322 Instruction *CreateInsertElement(Constant *Vec, Constant *NewElt,
322 Instruction *CreateInsertElement(Constant *Vec, Constant *NewElt,
323 Constant *Idx) const {
327 Instruction *CreateShuffleVector(Constant *V1, Constant *V2,
327 Instruction *CreateShuffleVector(Constant *V1, Constant *V2,
328 Constant *Mask) const {
332 Instruction *CreateExtractValue(Constant *Agg,
337 Instruction *CreateInsertValue(Constant *Agg, Constant *Val,
337 Instruction *CreateInsertValue(Constant *Agg, Constant *Val,
include/llvm/IR/PatternMatch.h 47 template <typename Val, typename Pattern> bool match(Val *V, const Pattern &P) {
56 template <typename OpTy> bool match(OpTy *V) {
66 template <typename ITy> bool match(ITy *V) { return isa<Class>(V); }
66 template <typename ITy> bool match(ITy *V) { return isa<Class>(V); }
89 inline class_match<Constant> m_Constant() { return class_match<Constant>(); }
117 template <typename ITy> bool match(ITy *V) {
132 template <typename ITy> bool match(ITy *V) {
157 template <typename ITy> bool match(ITy *V) {
163 if (const auto *C = dyn_cast<Constant>(V))
163 if (const auto *C = dyn_cast<Constant>(V))
183 if (const auto *C = dyn_cast<Constant>(V))
183 if (const auto *C = dyn_cast<Constant>(V))
224 template <typename ITy> bool match(ITy *V) {
228 if (const auto *C = dyn_cast<Constant>(V)) {
228 if (const auto *C = dyn_cast<Constant>(V)) {
237 Constant *Elt = C->getAggregateElement(i);
261 template <typename ITy> bool match(ITy *V) {
268 if (const auto *C = dyn_cast<Constant>(V))
268 if (const auto *C = dyn_cast<Constant>(V))
283 template <typename ITy> bool match(ITy *V) {
287 if (const auto *C = dyn_cast<Constant>(V)) {
287 if (const auto *C = dyn_cast<Constant>(V)) {
296 Constant *Elt = C->getAggregateElement(i);
396 template <typename ITy> bool match(ITy *V) {
397 auto *C = dyn_cast<Constant>(V);
397 auto *C = dyn_cast<Constant>(V);
540 Class *&VR;
542 bind_ty(Class *&V) : VR(V) {}
544 template <typename ITy> bool match(ITy *V) {
545 if (auto *CV = dyn_cast<Class>(V)) {
545 if (auto *CV = dyn_cast<Class>(V)) {
566 inline bind_ty<Constant> m_Constant(Constant *&C) { return C; }
566 inline bind_ty<Constant> m_Constant(Constant *&C) { return C; }
583 template <typename ITy> bool match(ITy *V) { return V == Val; }
596 template <typename ITy> bool match(ITy *const V) { return V == Val; }
612 template <typename ITy> bool match(ITy *V) {
616 if (const auto *C = dyn_cast<Constant>(V))
616 if (const auto *C = dyn_cast<Constant>(V))
635 template <typename ITy> bool match(ITy *V) {
652 template <typename ITy> bool match(ITy *V) {
655 if (const auto *C = dyn_cast<Constant>(V))
655 if (const auto *C = dyn_cast<Constant>(V))
742 template <typename OpTy> bool match(OpTy *V) {
786 template <typename OpTy> bool match(OpTy *V) {
918 template <typename OpTy> bool match(OpTy *V) {
1010 template <typename OpTy> bool match(OpTy *V) {
1132 template <typename OpTy> bool match(OpTy *V) {
1207 template <typename OpTy> bool match(OpTy *V) {
1279 template <typename OpTy> bool match(OpTy *V) {
1439 template <typename OpTy> bool match(OpTy *V) {
1673 template <typename OpTy> bool match(OpTy *V) {
1693 template <typename OpTy> bool match(OpTy *V) {
include/llvm/IR/User.h 307 return isa<Instruction>(V) || isa<Constant>(V);
include/llvm/IR/Value.h 912 inline T **unwrap(LLVMValueRef *Vals, unsigned Length) {
915 unwrap<T>(*I); // For side effect of calling assert on invalid usage.
include/llvm/IR/ValueHandle.h 256 ValueTy *getValPtr() const { return static_cast<ValueTy *>(getRawValPtr()); }
257 void setValPtr(ValueTy *P) { setRawValPtr(GetAsValue(P)); }
262 AssertingVH(ValueTy *P) : ValueHandleBase(Assert, GetAsValue(P)) {}
269 operator ValueTy*() const {
273 ValueTy *operator=(ValueTy *RHS) {
273 ValueTy *operator=(ValueTy *RHS) {
277 ValueTy *operator=(const AssertingVH<ValueTy> &RHS) {
277 ValueTy *operator=(const AssertingVH<ValueTy> &RHS) {
282 ValueTy *operator->() const { return getValPtr(); }
283 ValueTy &operator*() const { return *getValPtr(); }
331 ValueTy *getValPtr() const {
341 return cast<ValueTy>(InnerHandle);
344 void setValPtr(ValueTy *P) {
357 TrackingVH(ValueTy *P) { setValPtr(P); }
359 operator ValueTy*() const {
363 ValueTy *operator=(ValueTy *RHS) {
363 ValueTy *operator=(ValueTy *RHS) {
368 ValueTy *operator->() const { return getValPtr(); }
369 ValueTy &operator*() const { return *getValPtr(); }
include/llvm/LTO/legacy/LTOModule.h 210 bool objcClassNameFromExpression(const Constant *c, std::string &name);
include/llvm/Support/Casting.h 34 using SimpleType = From; // The real type this represents...
37 static SimpleType &getSimplifiedValue(From &Val) { return Val; }
41 using NonConstSimpleType = typename simplify_type<From>::SimpleType;
47 static RetType getSimplifiedValue(const From& Val) {
57 static inline bool doit(const From &Val) {
58 return To::classof(&Val);
66 static inline bool doit(const From &) { return true; }
76 static inline bool doit(const From &Val) {
77 return isa_impl<To, From>::doit(Val);
77 return isa_impl<To, From>::doit(Val);
92 return isa_impl<To, From>::doit(*Val);
104 static inline bool doit(const From *Val) {
106 return isa_impl<To, From>::doit(*Val);
106 return isa_impl<To, From>::doit(*Val);
122 return isa_impl_wrap<To, SimpleFrom,
132 return isa_impl_cl<To,FromTy>::doit(Val);
141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
142 return isa_impl_wrap<X, const Y,
142 return isa_impl_wrap<X, const Y,
143 typename simplify_type<const Y>::SimpleType>::doit(Val);
168 using ret_type = const To &; // Normal case, return Ty&
172 using ret_type = To *; // Pointer arg case, return Ty*
176 using ret_type = const To *; // Constant pointer arg case, return const Ty*
198 using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
210 To, From, typename simplify_type<From>::SimpleType>::ret_type;
218 static typename cast_retty<To, From>::ret_type doit(From &Val) {
219 return cast_convert_val<To, SimpleFrom,
227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
228 typename cast_retty<To, FromTy>::ret_type Res2
248 typename cast_retty<X, const Y>::ret_type>::type
252 X, const Y, typename simplify_type<const Y>::SimpleType>::doit(Val);
256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
258 return cast_convert_val<X, Y,
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
265 return cast_convert_val<X, Y*,
265 return cast_convert_val<X, Y*,
266 typename simplify_type<Y*>::SimpleType>::doit(Val);
285 typename cast_retty<X, const Y>::ret_type>::type
290 return cast<X>(Val);
296 typename cast_retty<X, Y>::ret_type>::type
301 return cast<X>(Val);
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
306 cast_or_null(Y *Val) {
309 return cast<X>(Val);
331 typename cast_retty<X, const Y>::ret_type>::type
333 return isa<X>(Val) ? cast<X>(Val) : nullptr;
333 return isa<X>(Val) ? cast<X>(Val) : nullptr;
337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
338 return isa<X>(Val) ? cast<X>(Val) : nullptr;
338 return isa<X>(Val) ? cast<X>(Val) : nullptr;
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
367 dyn_cast_or_null(Y *Val) {
368 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
368 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
91 typedef PointerLikeTypeTraits<T *> NonConst;
93 static inline const void *getAsVoidPointer(const T *P) {
96 static inline const T *getFromVoidPointer(const void *P) {
include/llvm/Support/type_traits.h 55 struct add_const_past_pointer { using type = const T; };
include/llvm/Target/TargetLoweringObjectFile.h 90 const Constant *C,
include/llvm/Transforms/IPO/GlobalDCE.h 40 std::unordered_map<Constant *, SmallPtrSet<GlobalValue *, 8>>
include/llvm/Transforms/Scalar/ConstantHoisting.h 103 Constant *Offset;
195 void emitBaseConstants(Instruction *Base, Constant *Offset, Type *Ty,
include/llvm/Transforms/Scalar/GVNExpression.h 587 Constant *ConstantValue = nullptr;
591 ConstantExpression(Constant *constantValue)
600 Constant *getConstantValue() const { return ConstantValue; }
601 void setConstantValue(Constant *V) { ConstantValue = V; }
include/llvm/Transforms/Scalar/JumpThreading.h 53 using PredValueInfo = SmallVectorImpl<std::pair<Constant *, BasicBlock *>>;
54 using PredValueInfoTy = SmallVector<std::pair<Constant *, BasicBlock *>, 8>;
include/llvm/Transforms/Utils/Evaluator.h 51 Tmp->replaceAllUsesWith(Constant::getNullValue(Tmp->getType()));
57 bool EvaluateFunction(Function *F, Constant *&RetVal,
58 const SmallVectorImpl<Constant*> &ActualArgs);
65 Constant *getVal(Value *V) {
66 if (Constant *CV = dyn_cast<Constant>(V)) return CV;
66 if (Constant *CV = dyn_cast<Constant>(V)) return CV;
67 Constant *R = ValueStack.back().lookup(V);
72 void setVal(Value *V, Constant *C) {
78 SmallVector<Constant *, 8> &Formals);
83 SmallVector<Constant *, 8> &Formals);
86 Constant *castCallResultIfNeeded(Value *CallExpr, Constant *RV);
86 Constant *castCallResultIfNeeded(Value *CallExpr, Constant *RV);
88 const DenseMap<Constant*, Constant*> &getMutatedMemory() const {
88 const DenseMap<Constant*, Constant*> &getMutatedMemory() const {
97 Constant *ComputeLoadResult(Constant *P);
97 Constant *ComputeLoadResult(Constant *P);
102 std::deque<DenseMap<Value*, Constant*>> ValueStack;
111 DenseMap<Constant*, Constant*> MutatedMemory;
111 DenseMap<Constant*, Constant*> MutatedMemory;
124 SmallPtrSet<Constant*, 8> SimpleConstants;
include/llvm/Transforms/Utils/FunctionComparator.h 222 int cmpConstants(const Constant *L, const Constant *R) const;
222 int cmpConstants(const Constant *L, const Constant *R) const;
include/llvm/Transforms/Utils/GlobalStatus.h 24 bool isSafeToDestroyConstant(const Constant *C);
include/llvm/Transforms/Utils/ModuleUtils.h 37 Constant *Data = nullptr);
41 Constant *Data = nullptr);
include/llvm/Transforms/Utils/SanitizerStats.h 48 std::vector<Constant *> Inits;
include/llvm/Transforms/Utils/VNCoercion.h 80 Constant *getConstantStoreValueForLoad(Constant *SrcVal, unsigned Offset,
80 Constant *getConstantStoreValueForLoad(Constant *SrcVal, unsigned Offset,
91 Constant *getConstantLoadValueForLoad(Constant *SrcVal, unsigned Offset,
91 Constant *getConstantLoadValueForLoad(Constant *SrcVal, unsigned Offset,
103 Constant *getConstantMemInstValueForLoad(MemIntrinsic *SrcInst, unsigned Offset,
include/llvm/Transforms/Utils/ValueMapper.h 172 Constant *mapConstant(const Constant &C);
172 Constant *mapConstant(const Constant &C);
177 void scheduleMapGlobalInitializer(GlobalVariable &GV, Constant &Init,
179 void scheduleMapAppendingVariable(GlobalVariable &GV, Constant *InitPrefix,
181 ArrayRef<Constant *> NewMembers,
184 Constant &Target,
272 inline Constant *MapValue(const Constant *V, ValueToValueMapTy &VM,
272 inline Constant *MapValue(const Constant *V, ValueToValueMapTy &VM,
lib/Analysis/AliasAnalysis.cpp 649 isa<Constant>(Object))
lib/Analysis/BasicAliasAnalysis.cpp 897 if (!isa<Constant>(Object) && Call != Object &&
1785 if ((isa<Constant>(O1) && isIdentifiedObject(O2) && !isa<Constant>(O2)) ||
1785 if ((isa<Constant>(O1) && isIdentifiedObject(O2) && !isa<Constant>(O2)) ||
1786 (isa<Constant>(O2) && isIdentifiedObject(O1) && !isa<Constant>(O1)))
1786 (isa<Constant>(O2) && isIdentifiedObject(O1) && !isa<Constant>(O1)))
lib/Analysis/BranchProbabilityInfo.cpp 499 !isa<Constant>(CI->getOperand(1)))
507 Constant *CmpConst = dyn_cast<Constant>(CI->getOperand(1));
507 Constant *CmpConst = dyn_cast<Constant>(CI->getOperand(1));
511 isa<Constant>(CmpLHS->getOperand(1))) {
546 Constant *CmpLHSConst = dyn_cast<Constant>(V);
546 Constant *CmpLHSConst = dyn_cast<Constant>(V);
553 cast<Constant>(I->getOperand(1)), true);
560 Constant *Result = ConstantExpr::getCompare(CI->getPredicate(),
lib/Analysis/CFLAndersAliasAnalysis.cpp 890 if (isa<Constant>(LocA.Ptr) && isa<Constant>(LocB.Ptr))
890 if (isa<Constant>(LocA.Ptr) && isa<Constant>(LocB.Ptr))
lib/Analysis/CFLSteensAliasAnalysis.cpp 102 if (isa<Constant>(Val)) {
lib/Analysis/CGSCCPassManager.cpp 441 SmallVector<Constant *, 16> Worklist;
442 SmallPtrSet<Constant *, 16> Visited;
474 if (auto *C = dyn_cast<Constant>(Op))
474 if (auto *C = dyn_cast<Constant>(Op))
lib/Analysis/CmpInstAnalysis.cpp 42 Constant *llvm::getPredForICmpCode(unsigned Code, bool Sign, Type *OpTy,
lib/Analysis/ConstantFolding.cpp 62 static Constant *foldConstVectorToAPInt(APInt &Result, Type *DestTy,
63 Constant *C, Type *SrcEltTy,
70 Constant *Element;
95 Constant *FoldBitCast(Constant *C, Type *DestTy, const DataLayout &DL) {
95 Constant *FoldBitCast(Constant *C, Type *DestTy, const DataLayout &DL) {
101 return Constant::getNullValue(DestTy);
104 return Constant::getAllOnesValue(DestTy);
123 if (Constant *CE = foldConstVectorToAPInt(Result, DestTy, C,
143 Constant *Ops = C; // don't take the address of C!
202 SmallVector<Constant*, 32> Result;
205 Constant *Zero = Constant::getNullValue(DstEltTy);
205 Constant *Zero = Constant::getNullValue(DstEltTy);
211 Constant *Elt = Zero;
214 Constant *Src = C->getAggregateElement(SrcElt++);
216 Src = Constant::getNullValue(C->getType()->getVectorElementType());
244 auto *Element = C->getAggregateElement(i);
263 Constant *Elt = ConstantExpr::getLShr(Src,
271 Constant *CE = ConstantExpr::getTrunc(Elt, DstIntTy);
288 bool llvm::IsConstantOffsetFromGlobal(Constant *C, GlobalValue *&GV,
326 Constant *llvm::ConstantFoldLoadThroughBitcast(Constant *C, Type *DestTy,
326 Constant *llvm::ConstantFoldLoadThroughBitcast(Constant *C, Type *DestTy,
359 Constant *ElemC;
378 bool ReadDataFromGlobal(Constant *C, uint64_t ByteOffset, unsigned char *CurPtr,
500 Constant *FoldReinterpretLoadFromConstPtr(Constant *C, Type *LoadTy,
500 Constant *FoldReinterpretLoadFromConstPtr(Constant *C, Type *LoadTy,
527 if (Constant *Res = FoldReinterpretLoadFromConstPtr(C, MapTy, DL)) {
530 return Constant::getNullValue(LoadTy);
536 return Constant::getNullValue(LoadTy);
604 Constant *ConstantFoldLoadThroughBitcastExpr(ConstantExpr *CE, Type *DestTy,
606 auto *SrcPtr = CE->getOperand(0);
612 Constant *C = ConstantFoldLoadFromConstPtr(SrcPtr, SrcTy, DL);
621 Constant *llvm::ConstantFoldLoadFromConstPtr(Constant *C, Type *Ty,
621 Constant *llvm::ConstantFoldLoadFromConstPtr(Constant *C, Type *Ty,
640 if (Constant *V =
648 if (Constant *LoadedC = ConstantFoldLoadThroughBitcastExpr(CE, Ty, DL))
678 Constant *Res = ConstantInt::get(CE->getContext(), StrVal);
690 return Constant::getNullValue(Ty);
702 Constant *ConstantFoldLoadInst(const LoadInst *LI, const DataLayout &DL) {
705 if (auto *C = dyn_cast<Constant>(LI->getOperand(0)))
705 if (auto *C = dyn_cast<Constant>(LI->getOperand(0)))
715 Constant *SymbolicallyEvaluateBinop(unsigned Opc, Constant *Op0, Constant *Op1,
715 Constant *SymbolicallyEvaluateBinop(unsigned Opc, Constant *Op0, Constant *Op1,
715 Constant *SymbolicallyEvaluateBinop(unsigned Opc, Constant *Op0, Constant *Op1,
764 Constant *CastGEPIndices(Type *SrcElemTy, ArrayRef<Constant *> Ops,
764 Constant *CastGEPIndices(Type *SrcElemTy, ArrayRef<Constant *> Ops,
771 SmallVector<Constant*, 32> NewIdxs;
793 Constant *C = ConstantExpr::getGetElementPtr(
795 if (Constant *Folded = ConstantFoldConstant(C, DL, TLI))
802 Constant *StripPtrCastKeepAS(Constant *Ptr, Type *&ElemTy) {
802 Constant *StripPtrCastKeepAS(Constant *Ptr, Type *&ElemTy) {
805 Ptr = cast<Constant>(Ptr->stripPointerCasts());
819 Constant *SymbolicallyEvaluateGEP(const GEPOperator *GEP,
820 ArrayRef<Constant *> Ops,
832 if (Constant *C = CastGEPIndices(SrcElemTy, Ops, ResTy,
836 Constant *Ptr = Ops[0];
855 Constant *Res = ConstantExpr::getPtrToInt(Ptr, CE->getType());
858 if (auto *FoldedRes = ConstantFoldConstant(Res, DL, TLI))
891 Ptr = cast<Constant>(GEP->getOperand(0));
910 Constant *C = ConstantInt::get(Ptr->getContext(), Offset + BasePtr);
919 SmallVector<Constant *, 32> NewIdxs;
997 Constant *C = ConstantExpr::getGetElementPtr(SrcElemTy, Ptr, NewIdxs,
1015 Constant *ConstantFoldInstOperandsImpl(const Value *InstOrCE, unsigned Opcode,
1016 ArrayRef<Constant *> Ops,
1031 if (Constant *C = SymbolicallyEvaluateGEP(GEP, Ops, DL, TLI))
1075 Constant *
1076 ConstantFoldConstantImpl(const Constant *C, const DataLayout &DL,
1078 SmallDenseMap<Constant *, Constant *> &FoldedOps) {
1078 SmallDenseMap<Constant *, Constant *> &FoldedOps) {
1082 SmallVector<Constant *, 8> Ops;
1084 auto *NewC = cast<Constant>(&NewU);
1084 auto *NewC = cast<Constant>(&NewU);
1090 if (auto *FoldedC =
1118 Constant *llvm::ConstantFoldInstruction(Instruction *I, const DataLayout &DL,
1122 Constant *CommonValue = nullptr;
1124 SmallDenseMap<Constant *, Constant *> FoldedOps;
1124 SmallDenseMap<Constant *, Constant *> FoldedOps;
1133 auto *C = dyn_cast<Constant>(Incoming);
1133 auto *C = dyn_cast<Constant>(Incoming);
1137 if (auto *FoldedC = ConstantFoldConstantImpl(C, DL, TLI, FoldedOps))
1152 if (!all_of(I->operands(), [](Use &U) { return isa<Constant>(U); }))
1155 SmallDenseMap<Constant *, Constant *> FoldedOps;
1155 SmallDenseMap<Constant *, Constant *> FoldedOps;
1156 SmallVector<Constant *, 8> Ops;
1158 auto *Op = cast<Constant>(&OpU);
1158 auto *Op = cast<Constant>(&OpU);
1160 if (auto *FoldedOp = ConstantFoldConstantImpl(Op, DL, TLI, FoldedOps))
1175 cast<Constant>(IVI->getAggregateOperand()),
1176 cast<Constant>(IVI->getInsertedValueOperand()),
1182 cast<Constant>(EVI->getAggregateOperand()),
1189 Constant *llvm::ConstantFoldConstant(const Constant *C, const DataLayout &DL,
1189 Constant *llvm::ConstantFoldConstant(const Constant *C, const DataLayout &DL,
1191 SmallDenseMap<Constant *, Constant *> FoldedOps;
1191 SmallDenseMap<Constant *, Constant *> FoldedOps;
1195 Constant *llvm::ConstantFoldInstOperands(Instruction *I,
1196 ArrayRef<Constant *> Ops,
1202 Constant *llvm::ConstantFoldCompareInstOperands(unsigned Predicate,
1203 Constant *Ops0, Constant *Ops1,
1203 Constant *Ops0, Constant *Ops1,
1222 Constant *C = ConstantExpr::getIntegerCast(CE0->getOperand(0),
1224 Constant *Null = Constant::getNullValue(C->getType());
1224 Constant *Null = Constant::getNullValue(C->getType());
1233 Constant *C = CE0->getOperand(0);
1234 Constant *Null = Constant::getNullValue(C->getType());
1234 Constant *Null = Constant::getNullValue(C->getType());
1247 Constant *C0 = ConstantExpr::getIntegerCast(CE0->getOperand(0),
1249 Constant *C1 = ConstantExpr::getIntegerCast(CE1->getOperand(0),
1271 Constant *LHS = ConstantFoldCompareInstOperands(
1273 Constant *RHS = ConstantFoldCompareInstOperands(
1289 Constant *llvm::ConstantFoldUnaryOpOperand(unsigned Opcode, Constant *Op,
1289 Constant *llvm::ConstantFoldUnaryOpOperand(unsigned Opcode, Constant *Op,
1296 Constant *llvm::ConstantFoldBinaryOpOperands(unsigned Opcode, Constant *LHS,
1296 Constant *llvm::ConstantFoldBinaryOpOperands(unsigned Opcode, Constant *LHS,
1297 Constant *RHS,
1301 if (Constant *C = SymbolicallyEvaluateBinop(Opcode, LHS, RHS, DL))
1307 Constant *llvm::ConstantFoldCastOperand(unsigned Opcode, Constant *C,
1307 Constant *llvm::ConstantFoldCastOperand(unsigned Opcode, Constant *C,
1318 Constant *Input = CE->getOperand(0);
1322 Constant *Mask =
1339 Constant *SrcPtr = CE->getOperand(0);
1368 Constant *llvm::ConstantFoldLoadThroughGEPConstantExpr(Constant *C,
1368 Constant *llvm::ConstantFoldLoadThroughGEPConstantExpr(Constant *C,
1383 Constant *
1384 llvm::ConstantFoldLoadThroughGEPIndices(Constant *C,
1385 ArrayRef<Constant *> Indices) {
1388 for (Constant *Index : Indices) {
1562 Constant *GetConstantFoldFPValue(double V, Type *Ty) {
1594 Constant *ConstantFoldFP(double (*NativeFP)(double), double V, Type *Ty) {
1605 Constant *ConstantFoldBinaryFP(double (*NativeFP)(double, double), double V,
1624 Constant *ConstantFoldSSEConvertToInt(const APFloat &Val, bool roundTowardZero,
1659 static bool isManifestConstant(const Constant *c) {
1664 if (!isManifestConstant(cast<Constant>(subc)))
1684 static Constant *ConstantFoldScalarCall1(StringRef Name,
1687 ArrayRef<Constant *> Operands,
1705 return Constant::getNullValue(Ty);
1994 auto *Op = cast<Constant>(Operands[0]);
1994 auto *Op = cast<Constant>(Operands[0]);
2023 static Constant *ConstantFoldScalarCall2(StringRef Name,
2026 ArrayRef<Constant *> Operands,
2144 Constant::getNullValue(Ty->getStructElementType(1))});
2152 return Constant::getNullValue(Ty);
2177 Constant *Ops[] = {
2188 return Constant::getAllOnesValue(Ty);
2198 return Constant::getNullValue(Ty);
2211 return Constant::getNullValue(Ty);
2228 auto *Op = cast<Constant>(Operands[0]);
2228 auto *Op = cast<Constant>(Operands[0]);
2276 static Constant *ConstantFoldScalarCall3(StringRef Name,
2279 ArrayRef<Constant *> Operands,
2371 static Constant *ConstantFoldScalarCall(StringRef Name,
2374 ArrayRef<Constant *> Operands,
2389 static Constant *ConstantFoldVectorCall(StringRef Name,
2392 ArrayRef<Constant *> Operands,
2396 SmallVector<Constant *, 4> Result(VTy->getNumElements());
2397 SmallVector<Constant *, 4> Lane(Operands.size());
2401 auto *SrcPtr = Operands[0];
2402 auto *Mask = Operands[2];
2403 auto *Passthru = Operands[3];
2405 Constant *VecData = ConstantFoldLoadFromConstPtr(SrcPtr, VTy, DL);
2407 SmallVector<Constant *, 32> NewElements;
2409 auto *MaskElt = Mask->getAggregateElement(I);
2412 auto *PassthruElt = Passthru->getAggregateElement(I);
2413 auto *VecElt = VecData ? VecData->getAggregateElement(I) : nullptr;
2448 Constant *Agg = Operands[J]->getAggregateElement(I);
2456 Constant *Folded =
2468 Constant *llvm::ConstantFoldCall(const CallBase *Call, Function *F,
2469 ArrayRef<Constant *> Operands,
lib/Analysis/GlobalsModRef.cpp 384 } else if (Constant *C = dyn_cast<Constant>(I)) {
384 } else if (Constant *C = dyn_cast<Constant>(I)) {
409 if (Constant *C = GV->getInitializer())
lib/Analysis/IVDescriptors.cpp 725 Constant *RecurrenceDescriptor::getRecurrenceIdentity(RecurrenceKind K,
lib/Analysis/InlineCost.cpp 169 DenseMap<Value *, Constant *> SimplifiedValues;
396 if (Constant *SimpleOp = SimplifiedValues.lookup(GTI.getOperand()))
424 if (Constant *SimpleOp = SimplifiedValues.lookup(*I))
435 Constant *Size = SimplifiedValues.lookup(I.getArraySize());
479 Constant *FirstC = nullptr;
499 Constant *C = dyn_cast<Constant>(V);
499 Constant *C = dyn_cast<Constant>(V);
591 if (!isa<Constant>(*I) && !SimplifiedValues.lookup(*I))
615 SmallVector<Constant *, 2> COps;
617 Constant *COp = dyn_cast<Constant>(Op);
617 Constant *COp = dyn_cast<Constant>(Op);
624 auto *C = Evaluate(COps);
1003 Constant *CLHS = ConstantInt::get(LHS->getContext(), LHSOffset);
1004 Constant *CRHS = ConstantInt::get(RHS->getContext(), RHSOffset);
1005 if (Constant *C = ConstantExpr::getICmp(I.getPredicate(), CLHS, CRHS)) {
1049 Constant *CLHS = ConstantInt::get(LHS->getContext(), LHSOffset);
1050 Constant *CRHS = ConstantInt::get(RHS->getContext(), RHSOffset);
1051 if (Constant *C = ConstantExpr::getSub(CLHS, CRHS)) {
1066 Constant *CLHS = dyn_cast<Constant>(LHS);
1066 Constant *CLHS = dyn_cast<Constant>(LHS);
1069 Constant *CRHS = dyn_cast<Constant>(RHS);
1069 Constant *CRHS = dyn_cast<Constant>(RHS);
1081 if (Constant *C = dyn_cast_or_null<Constant>(SimpleV))
1081 if (Constant *C = dyn_cast_or_null<Constant>(SimpleV))
1105 Constant *COp = dyn_cast<Constant>(Op);
1105 Constant *COp = dyn_cast<Constant>(Op);
1113 if (Constant *C = dyn_cast_or_null<Constant>(SimpleV))
1113 if (Constant *C = dyn_cast_or_null<Constant>(SimpleV))
1212 SmallVector<Constant *, 4> ConstantArgs;
1215 Constant *C = dyn_cast<Constant>(I);
1215 Constant *C = dyn_cast<Constant>(I);
1217 C = dyn_cast_or_null<Constant>(SimplifiedValues.lookup(I));
1223 if (Constant *C = ConstantFoldCall(&Call, F, ConstantArgs)) {
1358 Constant *TrueC = dyn_cast<Constant>(TrueVal);
1358 Constant *TrueC = dyn_cast<Constant>(TrueVal);
1361 Constant *FalseC = dyn_cast<Constant>(FalseVal);
1361 Constant *FalseC = dyn_cast<Constant>(FalseVal);
1364 Constant *CondC =
1365 dyn_cast_or_null<Constant>(SimplifiedValues.lookup(SI.getCondition()));
1403 if (auto *C = ConstantExpr::getSelect(CondC, TrueC, FalseC)) {
1412 if (Constant *SelectedC = dyn_cast<Constant>(SelectedV)) {
1412 if (Constant *SelectedC = dyn_cast<Constant>(SelectedV)) {
1791 if (Constant *C = dyn_cast<Constant>(CAI))
1791 if (Constant *C = dyn_cast<Constant>(CAI))
lib/Analysis/InstructionSimplify.cpp 116 static Constant *getFalse(Type *Ty) {
122 static Constant *getTrue(Type *Ty) {
472 SimplifyXorInst(Cond, Constant::getAllOnesValue(Cond->getType()),
560 static Constant *foldOrCommuteConstant(Instruction::BinaryOps Opcode,
563 if (auto *CLHS = dyn_cast<Constant>(Op0)) {
563 if (auto *CLHS = dyn_cast<Constant>(Op0)) {
564 if (auto *CRHS = dyn_cast<Constant>(Op1))
564 if (auto *CRHS = dyn_cast<Constant>(Op1))
578 if (Constant *C = foldOrCommuteConstant(Instruction::Add, Op0, Op1, Q))
591 return Constant::getNullValue(Op0->getType());
605 return Constant::getAllOnesValue(Ty);
655 static Constant *stripAndComputeConstantOffsets(const DataLayout &DL, Value *&V,
668 Constant *OffsetIntPtr = ConstantInt::get(IntPtrTy, Offset);
677 static Constant *computePointerDifference(const DataLayout &DL, Value *LHS,
679 Constant *LHSOffset = stripAndComputeConstantOffsets(DL, LHS);
680 Constant *RHSOffset = stripAndComputeConstantOffsets(DL, RHS);
698 if (Constant *C = foldOrCommuteConstant(Instruction::Sub, Op0, Op1, Q))
712 return Constant::getNullValue(Op0->getType());
718 return Constant::getNullValue(Op0->getType());
725 return Constant::getNullValue(Op0->getType());
804 if (Constant *Result = computePointerDifference(Q.DL, X, Y))
833 if (Constant *C = foldOrCommuteConstant(Instruction::Mul, Op0, Op1, Q))
839 return Constant::getNullValue(Op0->getType());
907 auto *Op1C = dyn_cast<Constant>(Op1);
907 auto *Op1C = dyn_cast<Constant>(Op1);
911 Constant *Elt = Op1C->getAggregateElement(i);
920 return Constant::getNullValue(Ty);
925 return Constant::getNullValue(Op0->getType());
930 return IsDiv ? ConstantInt::get(Ty, 1) : Constant::getNullValue(Ty);
940 return IsDiv ? Op0 : Constant::getNullValue(Ty);
951 Constant *C = dyn_cast_or_null<Constant>(V);
951 Constant *C = dyn_cast_or_null<Constant>(V);
977 Constant *PosDividendC = ConstantInt::get(Ty, C->abs());
978 Constant *NegDividendC = ConstantInt::get(Ty, -C->abs());
993 Constant *PosDivisorC = ConstantInt::get(Ty, C->abs());
994 Constant *NegDivisorC = ConstantInt::get(Ty, -C->abs());
1010 if (Constant *C = foldOrCommuteConstant(Opcode, Op0, Op1, Q))
1035 return Constant::getNullValue(Op0->getType());
1044 return Constant::getNullValue(Op0->getType());
1060 return Constant::getNullValue(Op0->getType());
1068 if (Constant *C = foldOrCommuteConstant(Opcode, Op0, Op1, Q))
1087 return Constant::getNullValue(Op0->getType());
1114 return Constant::getAllOnesValue(Op0->getType());
1168 Constant *C = dyn_cast<Constant>(Amount);
1168 Constant *C = dyn_cast<Constant>(Amount);
1197 if (Constant *C = foldOrCommuteConstant(Opcode, Op0, Op1, Q))
1202 return Constant::getNullValue(Op0->getType());
1253 return Constant::getNullValue(Op0->getType());
1258 return isExact ? Op0 : Constant::getNullValue(Op0->getType());
1280 return isNSW || isNUW ? Op0 : Constant::getNullValue(Op0->getType());
1351 return Constant::getAllOnesValue(Op0->getType());
1824 if (auto *C = dyn_cast<Constant>(V))
1824 if (auto *C = dyn_cast<Constant>(V))
1905 if (Constant *C = foldOrCommuteConstant(Instruction::And, Op0, Op1, Q))
1910 return Constant::getNullValue(Op0->getType());
1918 return Constant::getNullValue(Op0->getType());
1927 return Constant::getNullValue(Op0->getType());
1979 return Constant::getNullValue(Op1->getType());
1982 return Constant::getNullValue(Op0->getType());
2061 if (Constant *C = foldOrCommuteConstant(Instruction::Or, Op0, Op1, Q))
2068 return Constant::getAllOnesValue(Op0->getType());
2078 return Constant::getAllOnesValue(Op0->getType());
2090 return Constant::getAllOnesValue(Op1->getType());
2094 return Constant::getAllOnesValue(Op0->getType());
2205 if (Constant *C = foldOrCommuteConstant(Instruction::Xor, Op0, Op1, Q))
2218 return Constant::getNullValue(Op0->getType());
2223 return Constant::getAllOnesValue(Op0->getType());
2299 static Constant *
2344 Constant *LHSOffset = stripAndComputeConstantOffsets(DL, LHS);
2345 Constant *RHSOffset = stripAndComputeConstantOffsets(DL, RHS);
2419 Constant *LHSNoBound = stripAndComputeConstantOffsets(DL, LHS, true);
2420 Constant *RHSNoBound = stripAndComputeConstantOffsets(DL, RHS, true);
2700 Constant::getNullValue(RHS->getType()), Q,
2707 SimplifyICmpInst(Pred, Constant::getNullValue(LHS->getType()),
3187 if (Constant *CLHS = dyn_cast<Constant>(LHS)) {
3187 if (Constant *CLHS = dyn_cast<Constant>(LHS)) {
3188 if (Constant *CRHS = dyn_cast<Constant>(RHS))
3188 if (Constant *CRHS = dyn_cast<Constant>(RHS))
3244 if (isa<CastInst>(LHS) && (isa<Constant>(RHS) || isa<CastInst>(RHS))) {
3254 if (Constant *RHSC = dyn_cast<Constant>(RHS)) {
3254 if (Constant *RHSC = dyn_cast<Constant>(RHS)) {
3285 Constant *Trunc = ConstantExpr::getTrunc(CI, SrcTy);
3286 Constant *RExt = ConstantExpr::getCast(CastInst::ZExt, Trunc, DstTy);
3344 Constant *Trunc = ConstantExpr::getTrunc(CI, SrcTy);
3345 Constant *RExt = ConstantExpr::getCast(CastInst::SExt, Trunc, DstTy);
3383 Constant::getNullValue(SrcTy),
3392 Constant::getNullValue(SrcTy),
3417 if (auto *C = computePointerICmp(Q.DL, Q.TLI, Q.DT, Pred, Q.AC, Q.CxtI,
3426 if (auto *C = computePointerICmp(Q.DL, Q.TLI, Q.DT, Pred, Q.AC, Q.CxtI,
3441 Constant *Null = Constant::getNullValue(GLHS->getPointerOperandType());
3441 Constant *Null = Constant::getNullValue(GLHS->getPointerOperandType());
3443 Constant *NewLHS = ConstantExpr::getGetElementPtr(
3447 Constant *NewRHS = ConstantExpr::getGetElementPtr(
3482 if (Constant *CLHS = dyn_cast<Constant>(LHS)) {
3482 if (Constant *CLHS = dyn_cast<Constant>(LHS)) {
3483 if (Constant *CRHS = dyn_cast<Constant>(RHS))
3483 if (Constant *CRHS = dyn_cast<Constant>(RHS))
3672 if (isa<Constant>(Op))
3733 if (Constant *CRepOp = dyn_cast<Constant>(RepOp)) {
3733 if (Constant *CRepOp = dyn_cast<Constant>(RepOp)) {
3735 SmallVector<Constant *, 8> ConstOps;
3739 else if (Constant *COp = dyn_cast<Constant>(I->getOperand(i)))
3739 else if (Constant *COp = dyn_cast<Constant>(I->getOperand(i)))
3936 if (auto *CondC = dyn_cast<Constant>(Cond)) {
3936 if (auto *CondC = dyn_cast<Constant>(Cond)) {
3937 if (auto *TrueC = dyn_cast<Constant>(TrueVal))
3937 if (auto *TrueC = dyn_cast<Constant>(TrueVal))
3938 if (auto *FalseC = dyn_cast<Constant>(FalseVal))
3938 if (auto *FalseC = dyn_cast<Constant>(FalseVal))
3943 return isa<Constant>(FalseVal) ? FalseVal : TrueVal;
4029 return Constant::getNullValue(GEPTy);
4090 if (!all_of(Ops, [](Value *V) { return isa<Constant>(V); }))
4093 auto *CE = ConstantExpr::getGetElementPtr(SrcTy, cast<Constant>(Ops[0]),
4093 auto *CE = ConstantExpr::getGetElementPtr(SrcTy, cast<Constant>(Ops[0]),
4095 if (auto *CEFolded = ConstantFoldConstant(CE, Q.DL))
4110 if (Constant *CAgg = dyn_cast<Constant>(Agg))
4110 if (Constant *CAgg = dyn_cast<Constant>(Agg))
4111 if (Constant *CVal = dyn_cast<Constant>(Val))
4111 if (Constant *CVal = dyn_cast<Constant>(Val))
4143 auto *VecC = dyn_cast<Constant>(Vec);
4143 auto *VecC = dyn_cast<Constant>(Vec);
4144 auto *ValC = dyn_cast<Constant>(Val);
4144 auto *ValC = dyn_cast<Constant>(Val);
4145 auto *IdxC = dyn_cast<Constant>(Idx);
4145 auto *IdxC = dyn_cast<Constant>(Idx);
4178 if (auto *CAgg = dyn_cast<Constant>(Agg))
4178 if (auto *CAgg = dyn_cast<Constant>(Agg))
4208 if (auto *CVec = dyn_cast<Constant>(Vec)) {
4208 if (auto *CVec = dyn_cast<Constant>(Vec)) {
4209 if (auto *CIdx = dyn_cast<Constant>(Idx))
4209 if (auto *CIdx = dyn_cast<Constant>(Idx))
4213 if (auto *Splat = CVec->getSplatValue())
4278 if (auto *C = dyn_cast<Constant>(Op))
4278 if (auto *C = dyn_cast<Constant>(Op))
4366 static Value *SimplifyShuffleVectorInst(Value *Op0, Value *Op1, Constant *Mask,
4397 auto *Op0Const = dyn_cast<Constant>(Op0);
4397 auto *Op0Const = dyn_cast<Constant>(Op0);
4398 auto *Op1Const = dyn_cast<Constant>(Op1);
4398 auto *Op1Const = dyn_cast<Constant>(Op1);
4443 Value *llvm::SimplifyShuffleVectorInst(Value *Op0, Value *Op1, Constant *Mask,
4448 static Constant *foldConstant(Instruction::UnaryOps Opcode,
4450 if (auto *C = dyn_cast<Constant>(Op))
4450 if (auto *C = dyn_cast<Constant>(Op))
4459 if (Constant *C = foldConstant(Instruction::FNeg, Op, Q))
4475 static Constant *propagateNaN(Constant *In) {
4475 static Constant *propagateNaN(Constant *In) {
4488 static Constant *simplifyFPOp(ArrayRef<Value *> Ops) {
4494 return propagateNaN(cast<Constant>(V));
4503 if (Constant *C = foldOrCommuteConstant(Instruction::FAdd, Op0, Op1, Q))
4506 if (Constant *C = simplifyFPOp({Op0, Op1}))
4550 if (Constant *C = foldOrCommuteConstant(Instruction::FSub, Op0, Op1, Q))
4553 if (Constant *C = simplifyFPOp({Op0, Op1}))
4581 return Constant::getNullValue(Op0->getType());
4595 if (Constant *C = simplifyFPOp({Op0, Op1}))
4629 if (Constant *C = foldOrCommuteConstant(Instruction::FMul, Op0, Op1, Q))
4659 if (Constant *C = foldOrCommuteConstant(Instruction::FDiv, Op0, Op1, Q))
4662 if (Constant *C = simplifyFPOp({Op0, Op1}))
4704 if (Constant *C = foldOrCommuteConstant(Instruction::FRem, Op0, Op1, Q))
4707 if (Constant *C = simplifyFPOp({Op0, Op1}))
4873 static Value *SimplifyRelativeLoad(Constant *Ptr, Constant *Offset,
4873 static Value *SimplifyRelativeLoad(Constant *Ptr, Constant *Offset,
4893 Constant *C = ConstantExpr::getGetElementPtr(
4896 Constant *Loaded = ConstantFoldLoadFromConstPtr(C, Int32Ty, DL);
4916 auto *LoadedLHSPtr = LoadedLHS->getOperand(0);
4918 Constant *LoadedRHS = LoadedCE->getOperand(1);
5011 return Constant::getNullValue(ReturnType);
5023 Constant::getNullValue(ReturnType->getStructElementType(1))});
5031 return Constant::getNullValue(ReturnType);
5035 return Constant::getNullValue(ReturnType);
5041 return Constant::getAllOnesValue(ReturnType);
5049 return Constant::getAllOnesValue(ReturnType);
5061 return Constant::getNullValue(ReturnType);
5066 return Constant::getNullValue(ReturnType);
5072 if (auto *C0 = dyn_cast<Constant>(Op0))
5072 if (auto *C0 = dyn_cast<Constant>(Op0))
5073 if (auto *C1 = dyn_cast<Constant>(Op1))
5073 if (auto *C1 = dyn_cast<Constant>(Op1))
5222 SmallVector<Constant *, 4> ConstantArgs;
5226 Constant *C = dyn_cast<Constant>(&Arg);
5226 Constant *C = dyn_cast<Constant>(&Arg);
lib/Analysis/LazyCallGraph.cpp 80 SmallVector<Constant *, 16> Worklist;
82 SmallPtrSet<Constant *, 16> Visited;
112 if (Constant *C = dyn_cast<Constant>(Op))
112 if (Constant *C = dyn_cast<Constant>(Op))
190 SmallVector<Constant *, 16> Worklist;
191 SmallPtrSet<Constant *, 16> Visited;
lib/Analysis/LazyValueInfo.cpp 562 if (isa<Constant>(Val))
571 if (Constant *VC = dyn_cast<Constant>(Val))
571 if (Constant *VC = dyn_cast<Constant>(Val))
595 if (isa<Constant>(Val))
1196 if (isa<Constant>(RHS)) {
1201 return ValueLatticeElement::get(cast<Constant>(RHS));
1203 return ValueLatticeElement::getNot(cast<Constant>(RHS));
1352 Constant* OpConst = Constant::getIntegerValue(Op->getType(), OpConstVal);
1352 Constant* OpConst = Constant::getIntegerValue(Op->getType(), OpConstVal);
1508 if (Constant *VC = dyn_cast<Constant>(Val)) {
1508 if (Constant *VC = dyn_cast<Constant>(Val)) {
1572 if (auto *C = dyn_cast<Constant>(V))
1572 if (auto *C = dyn_cast<Constant>(V))
1694 Constant *LazyValueInfo::getConstant(Value *V, BasicBlock *BB,
1734 Constant *LazyValueInfo::getConstantOnEdge(Value *V, BasicBlock *FromBB,
1772 getPredicateResult(unsigned Pred, Constant *C, const ValueLatticeElement &Val,
1775 Constant *Res = nullptr;
1839 LazyValueInfo::getPredicateOnEdge(unsigned Pred, Value *V, Constant *C,
1850 LazyValueInfo::getPredicateAt(unsigned Pred, Value *V, Constant *C,
lib/Analysis/Lint.cpp 562 Constant *C = dyn_cast<Constant>(V);
562 Constant *C = dyn_cast<Constant>(V);
572 Constant *Elem = C->getAggregateElement(I);
720 } else if (auto *C = dyn_cast<Constant>(V)) {
720 } else if (auto *C = dyn_cast<Constant>(V)) {
lib/Analysis/LoopUnrollAnalyzer.cpp 70 if (!isa<Constant>(LHS))
71 if (Constant *SimpleLHS = SimplifiedValues.lookup(LHS))
73 if (!isa<Constant>(RHS))
74 if (Constant *SimpleRHS = SimplifiedValues.lookup(RHS))
85 if (Constant *C = dyn_cast_or_null<Constant>(SimpleV))
85 if (Constant *C = dyn_cast_or_null<Constant>(SimpleV))
135 Constant *CV = CDS->getElementAsConstant(Index);
145 Constant *COp = dyn_cast<Constant>(I.getOperand(0));
145 Constant *COp = dyn_cast<Constant>(I.getOperand(0));
155 if (Constant *C =
170 if (!isa<Constant>(LHS))
171 if (Constant *SimpleLHS = SimplifiedValues.lookup(LHS))
173 if (!isa<Constant>(RHS))
174 if (Constant *SimpleRHS = SimplifiedValues.lookup(RHS))
177 if (!isa<Constant>(LHS) && !isa<Constant>(RHS)) {
177 if (!isa<Constant>(LHS) && !isa<Constant>(RHS)) {
192 if (Constant *CLHS = dyn_cast<Constant>(LHS)) {
192 if (Constant *CLHS = dyn_cast<Constant>(LHS)) {
193 if (Constant *CRHS = dyn_cast<Constant>(RHS)) {
193 if (Constant *CRHS = dyn_cast<Constant>(RHS)) {
195 if (Constant *C = ConstantExpr::getCompare(I.getPredicate(), CLHS, CRHS)) {
lib/Analysis/ModuleSummaryAnalysis.cpp 368 if (!CalledValue || isa<Constant>(CalledValue))
486 static void findFuncPointers(const Constant *I, uint64_t StartingOffset,
512 findFuncPointers(cast<Constant>(I->getOperand(Op)),
520 findFuncPointers(cast<Constant>(I->getOperand(i)),
lib/Analysis/MustExecute.cpp 106 if (Constant *PersonalityFn = Fn->getPersonalityFn())
145 auto *SimpleCst = dyn_cast_or_null<Constant>(SimpleValOrNull);
145 auto *SimpleCst = dyn_cast_or_null<Constant>(SimpleValOrNull);
lib/Analysis/PHITransAddr.cpp 197 if (Constant *C = dyn_cast<Constant>(PHIIn))
197 if (Constant *C = dyn_cast<Constant>(PHIIn))
256 Constant *RHS = cast<ConstantInt>(Inst->getOperand(1));
lib/Analysis/ScalarEvolution.cpp 337 Constant *FieldNo;
529 bool SCEVUnknown::isOffsetOf(Type *&CTy, Constant *&FieldNo) const {
3298 Constant *LHSCV = LHSC->getValue();
3299 Constant *RHSCV = RHSC->getValue();
3955 V, getConstant(cast<ConstantInt>(Constant::getAllOnesValue(Ty))), Flags);
4000 getConstant(cast<ConstantInt>(Constant::getAllOnesValue(Ty)));
4537 Constant *X =
6385 Constant *X = ConstantInt::get(
7371 if (Constant *RHS = dyn_cast<Constant>(ExitCond->getOperand(1))) {
7371 if (Constant *RHS = dyn_cast<Constant>(ExitCond->getOperand(1))) {
7493 Constant *RHS,
7507 GEP->getNumOperands() < 3 || !isa<Constant>(GEP->getOperand(1)) ||
7508 !cast<Constant>(GEP->getOperand(1))->isNullValue())
7513 std::vector<Constant*> Indexes;
7551 Constant *Result = ConstantFoldLoadThroughGEPIndices(GV->getInitializer(),
7694 auto *Result =
7753 if (isa<Constant>(Op)) continue;
7801 static Constant *EvaluateExpression(Value *V, const Loop *L,
7802 DenseMap<Instruction *, Constant *> &Vals,
7806 if (Constant *C = dyn_cast<Constant>(V)) return C;
7806 if (Constant *C = dyn_cast<Constant>(V)) return C;
7810 if (Constant *C = Vals.lookup(I)) return C;
7821 std::vector<Constant*> Operands(I->getNumOperands());
7826 Operands[i] = dyn_cast<Constant>(I->getOperand(i));
7830 Constant *C = EvaluateExpression(Operand, L, Vals, DL, TLI);
7849 static Constant *getOtherIncomingValue(PHINode *PN, BasicBlock *BB) {
7850 Constant *IncomingVal = nullptr;
7856 auto *CurrentVal = dyn_cast<Constant>(PN->getIncomingValue(i));
7856 auto *CurrentVal = dyn_cast<Constant>(PN->getIncomingValue(i));
7874 Constant *
7885 Constant *&RetVal = ConstantEvolutionLoopExitValue[PN];
7887 DenseMap<Instruction *, Constant *> CurrentIterVals;
7896 if (auto *StartCST = getOtherIncomingValue(&PHI, Latch))
7917 DenseMap<Instruction *, Constant *> NextIterVals;
7918 Constant *NextPHI =
7929 SmallVector<std::pair<PHINode *, Constant *>, 8> PHIsToCompute;
7939 Constant *&NextPHI = NextIterVals[PHI];
7967 DenseMap<Instruction *, Constant *> CurrentIterVals;
7975 if (auto *StartCST = getOtherIncomingValue(&PHI, Latch))
7999 DenseMap<Instruction *, Constant *> NextIterVals;
8011 Constant *&NextPHI = NextIterVals[PHI];
8048 static Constant *BuildConstantFromSCEV(const SCEV *V) {
8056 return dyn_cast<Constant>(cast<SCEVUnknown>(V)->getValue());
8059 if (Constant *CastOp = BuildConstantFromSCEV(SS->getOperand()))
8065 if (Constant *CastOp = BuildConstantFromSCEV(SZ->getOperand()))
8071 if (Constant *CastOp = BuildConstantFromSCEV(ST->getOperand()))
8077 if (Constant *C = BuildConstantFromSCEV(SA->getOperand(0))) {
8084 Constant *C2 = BuildConstantFromSCEV(SA->getOperand(i));
8116 if (Constant *C = BuildConstantFromSCEV(SM->getOperand(0))) {
8120 Constant *C2 = BuildConstantFromSCEV(SM->getOperand(i));
8130 if (Constant *LHS = BuildConstantFromSCEV(SU->getLHS()))
8131 if (Constant *RHS = BuildConstantFromSCEV(SU->getRHS()))
8194 Constant *RV =
8216 SmallVector<Constant *, 4> Operands;
8219 if (Constant *C = dyn_cast<Constant>(Op)) {
8219 if (Constant *C = dyn_cast<Constant>(Op)) {
8234 Constant *C = BuildConstantFromSCEV(OpV);
8246 Constant *C = nullptr;
lib/Analysis/ScalarEvolutionExpander.cpp 145 if (Constant *C = dyn_cast<Constant>(V))
145 if (Constant *C = dyn_cast<Constant>(V))
173 if (Constant *CLHS = dyn_cast<Constant>(LHS))
173 if (Constant *CLHS = dyn_cast<Constant>(LHS))
174 if (Constant *CRHS = dyn_cast<Constant>(RHS))
174 if (Constant *CRHS = dyn_cast<Constant>(RHS))
459 Constant::getNullValue(Ty) :
493 Constant::getNullValue(Type::getInt32Ty(Ty->getContext())));
518 if (Constant *CLHS = dyn_cast<Constant>(V))
518 if (Constant *CLHS = dyn_cast<Constant>(V))
519 if (Constant *CRHS = dyn_cast<Constant>(Idx))
519 if (Constant *CRHS = dyn_cast<Constant>(Idx))
750 if (isa<Constant>(Sum)) std::swap(Sum, W);
825 Prod = InsertBinop(Instruction::Sub, Constant::getNullValue(Ty), Prod,
833 if (isa<Constant>(Prod)) std::swap(Prod, W);
955 if (isa<Constant>(*I))
1570 Constant *One = ConstantInt::get(Ty, 1);
1590 CanonicalIV->addIncoming(Constant::getNullValue(Ty), HP);
lib/Analysis/TargetTransformInfo.cpp 371 bool TargetTransformInfo::shouldBuildLookupTablesForConstant(Constant *C) const {
lib/Analysis/TypeMetadataUtils.cpp 131 Constant *llvm::getPointerAtOffset(Constant *I, uint64_t Offset, Module &M) {
131 Constant *llvm::getPointerAtOffset(Constant *I, uint64_t Offset, Module &M) {
146 return getPointerAtOffset(cast<Constant>(I->getOperand(Op)),
157 return getPointerAtOffset(cast<Constant>(I->getOperand(Op)),
lib/Analysis/ValueTracking.cpp 217 if (Constant *C = dyn_cast<Constant>(IC->getOperand(1)))
217 if (Constant *C = dyn_cast<Constant>(IC->getOperand(1)))
1315 Constant *CIndex = cast<Constant>(Index);
1315 Constant *CIndex = cast<Constant>(Index);
1682 Constant *Element = CV->getAggregateElement(i);
2001 if (auto *C = dyn_cast<Constant>(V)) {
2021 Constant *Elt = C->getAggregateElement(i);
2339 const auto *CV = dyn_cast<Constant>(V);
2339 const auto *CV = dyn_cast<Constant>(V);
2514 if (const auto *CRHS = dyn_cast<Constant>(U->getOperand(1)))
2514 if (const auto *CRHS = dyn_cast<Constant>(U->getOperand(1)))
2539 if (const auto *CLHS = dyn_cast<Constant>(U->getOperand(0)))
2539 if (const auto *CLHS = dyn_cast<Constant>(U->getOperand(0)))
2686 Constant *BaseVal = ConstantInt::get(T, Base);
2730 if (Constant *Op1C = dyn_cast<Constant>(Op1))
2730 if (Constant *Op1C = dyn_cast<Constant>(Op1))
2731 if (Constant *MulC = dyn_cast<Constant>(Mul0)) {
2731 if (Constant *MulC = dyn_cast<Constant>(Mul0)) {
2754 if (Constant *Op0C = dyn_cast<Constant>(Op0))
2754 if (Constant *Op0C = dyn_cast<Constant>(Op0))
2755 if (Constant *MulC = dyn_cast<Constant>(Mul1)) {
2755 if (Constant *MulC = dyn_cast<Constant>(Mul1)) {
2957 if (auto *CV = dyn_cast<Constant>(V)) {
3167 if (!V->getType()->isVectorTy() || !isa<Constant>(V))
3173 Constant *Elt = cast<Constant>(V)->getAggregateElement(i);
3173 Constant *Elt = cast<Constant>(V)->getAggregateElement(i);
3203 Constant *C = dyn_cast<Constant>(V);
3203 Constant *C = dyn_cast<Constant>(V);
3216 return Constant::getNullValue(Type::getInt8Ty(Ctx));
3381 if (Constant *C = dyn_cast<Constant>(V)) {
3381 if (Constant *C = dyn_cast<Constant>(V)) {
3902 if (Constant *C = dyn_cast<Constant>(Inst->getOperand(i)))
3902 if (Constant *C = dyn_cast<Constant>(Inst->getOperand(i)))
4774 !cast<Constant>(TrueVal)->containsUndefElement())
4777 !cast<Constant>(FalseVal)->containsUndefElement())
4973 auto *C = dyn_cast<Constant>(V2);
4973 auto *C = dyn_cast<Constant>(V2);
4977 Constant *CastedTo = nullptr;
4988 Constant *CmpConst;
5043 Constant *CastedBack =
lib/Analysis/VectorUtils.cpp 268 if (Constant *C = dyn_cast<Constant>(V))
268 if (Constant *C = dyn_cast<Constant>(V))
299 Value *Val; Constant *C;
301 if (Constant *Elt = C->getAggregateElement(EltNo))
315 if (auto *C = dyn_cast<Constant>(V))
339 if (auto *C = dyn_cast<Constant>(V))
344 Constant *Mask;
637 Constant *
647 SmallVector<Constant *, 16> Mask;
657 Constant *llvm::createReplicatedMask(IRBuilder<> &Builder,
659 SmallVector<Constant *, 16> MaskVec;
667 Constant *llvm::createInterleaveMask(IRBuilder<> &Builder, unsigned VF,
669 SmallVector<Constant *, 16> Mask;
677 Constant *llvm::createStrideMask(IRBuilder<> &Builder, unsigned Start,
679 SmallVector<Constant *, 16> Mask;
686 Constant *llvm::createSequentialMask(IRBuilder<> &Builder, unsigned Start,
688 SmallVector<Constant *, 16> Mask;
692 Constant *Undef = UndefValue::get(Builder.getInt32Ty());
716 Constant *ExtMask =
721 Constant *Mask = createSequentialMask(Builder, 0, NumElts1 + NumElts2, 0);
753 auto *ConstMask = dyn_cast<Constant>(Mask);
753 auto *ConstMask = dyn_cast<Constant>(Mask);
760 if (auto *MaskElt = ConstMask->getAggregateElement(I))
770 auto *ConstMask = dyn_cast<Constant>(Mask);
770 auto *ConstMask = dyn_cast<Constant>(Mask);
777 if (auto *MaskElt = ConstMask->getAggregateElement(I))
lib/AsmParser/LLParser.cpp 77 bool LLParser::parseStandaloneConstantValue(Constant *&C,
901 Constant *Aliasee;
1051 Constant *Init = nullptr;
3113 SmallVector<Constant*, 16> Elts;
3118 ID.ConstantStructElts = std::make_unique<Constant *[]>(Elts.size());
3131 SmallVector<Constant*, 16> Elts;
3140 ID.ConstantStructElts = std::make_unique<Constant *[]>(Elts.size());
3170 SmallVector<Constant*, 16> Elts;
3321 Constant *SrcVal;
3340 Constant *Val;
3358 Constant *Val0, *Val1;
3385 Constant *Val0, *Val1;
3418 Constant *Val;
3434 Constant *C = ConstantExpr::get(Opc, Val, Flags);
3459 Constant *Val0, *Val1;
3512 Constant *C = ConstantExpr::get(Opc, Val0, Val1, Flags);
3523 Constant *Val0, *Val1;
3547 SmallVector<Constant*, 16> Elts;
3586 ArrayRef<Constant *> Indices(Elts.begin() + 1, Elts.end());
3587 for (Constant *Val : Indices) {
3659 bool LLParser::ParseGlobalValue(Type *Ty, Constant *&C) {
3665 if (V && !(C = dyn_cast<Constant>(V)))
3670 bool LLParser::ParseGlobalTypeAndValue(Constant *&V) {
3702 bool LLParser::ParseGlobalValueVector(SmallVectorImpl<Constant *> &Elts,
3715 Constant *C;
5210 V = Constant::getNullValue(Ty);
5215 V = Constant::getNullValue(Ty);
5247 bool LLParser::parseConstantValue(Type *Ty, Constant *&C) {
5264 C = cast<Constant>(V);
5268 C = Constant::getNullValue(Ty);
5383 Constant *Prefix = nullptr;
5384 Constant *Prologue = nullptr;
5385 Constant *PersonalityFn = nullptr;
6740 Constant *CV = dyn_cast<Constant>(V);
6740 Constant *CV = dyn_cast<Constant>(V);
lib/AsmParser/LLParser.h 66 Constant *ConstantVal;
67 std::unique_ptr<Constant *[]> ConstantStructElts;
181 bool parseStandaloneConstantValue(Constant *&C, const SlotMapping *Slots);
462 bool parseConstantValue(Type *Ty, Constant *&C);
511 bool ParseGlobalValue(Type *Ty, Constant *&C);
512 bool ParseGlobalTypeAndValue(Constant *&V);
513 bool ParseGlobalValueVector(SmallVectorImpl<Constant *> &Elts,
lib/AsmParser/Parser.cpp 147 Constant *llvm::parseConstantValue(StringRef Asm, SMDiagnostic &Err,
152 Constant *C;
lib/Bitcode/Reader/BitcodeReader.cpp 2249 if (Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]))
2249 if (Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]))
2262 Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]);
2262 Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]);
2278 if (Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]))
2278 if (Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]))
2291 if (Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]))
2291 if (Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]))
2304 if (Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]))
2304 if (Constant *C = dyn_cast_or_null<Constant>(ValueList[ValID]))
2382 V = Constant::getNullValue(CurTy);
2434 SmallVector<Constant*, 16> Elts;
2525 Constant *LHS = ValueList.getConstantFwdRef(Record[1], CurTy);
2538 Constant *LHS = ValueList.getConstantFwdRef(Record[1], CurTy);
2539 Constant *RHS = ValueList.getConstantFwdRef(Record[2], CurTy);
2572 Constant *Op = ValueList.getConstantFwdRef(Record[2], OpTy);
2597 SmallVector<Constant*, 16> Elts;
2619 ArrayRef<Constant *> Indices(Elts.begin() + 1, Elts.end());
2651 Constant *Op0 = ValueList.getConstantFwdRef(Record[1], OpTy);
2652 Constant *Op1 = nullptr;
2670 Constant *Op0 = ValueList.getConstantFwdRef(Record[0], OpTy);
2671 Constant *Op1 = ValueList.getConstantFwdRef(Record[1],
2673 Constant *Op2 = nullptr;
2690 Constant *Op0 = ValueList.getConstantFwdRef(Record[0], OpTy);
2691 Constant *Op1 = ValueList.getConstantFwdRef(Record[1], OpTy);
2694 Constant *Op2 = ValueList.getConstantFwdRef(Record[2], ShufTy);
2704 Constant *Op0 = ValueList.getConstantFwdRef(Record[1], OpTy);
2705 Constant *Op1 = ValueList.getConstantFwdRef(Record[2], OpTy);
2708 Constant *Op2 = ValueList.getConstantFwdRef(Record[3], ShufTy);
2718 Constant *Op0 = ValueList.getConstantFwdRef(Record[1], OpTy);
2719 Constant *Op1 = ValueList.getConstantFwdRef(Record[2], OpTy);
4699 F->setPersonalityFn(cast<Constant>(PersFn));
4700 else if (F->getPersonalityFn() != cast<Constant>(PersFn))
4724 LP->addClause(cast<Constant>(Val));
lib/Bitcode/Reader/ValueList.cpp 88 if (Constant *PHC = dyn_cast<Constant>(&*OldV)) {
88 if (Constant *PHC = dyn_cast<Constant>(&*OldV)) {
99 Constant *BitcodeReaderValueList::getConstantFwdRef(unsigned Idx, Type *Ty) {
110 return cast<Constant>(V);
114 Constant *C = new ConstantPlaceHolder(Ty, Context);
158 SmallVector<Constant *, 64> NewOps;
162 Constant *Placeholder = ResolveConstants.back().first;
174 if (!isa<Constant>(U) || isa<GlobalValue>(U)) {
181 Constant *UserC = cast<Constant>(U);
181 Constant *UserC = cast<Constant>(U);
195 std::pair<Constant *, unsigned>(cast<Constant>(*I), 0));
200 NewOps.push_back(cast<Constant>(NewOp));
204 Constant *NewC;
lib/Bitcode/Reader/ValueList.h 45 using ResolveConstantsTy = std::vector<std::pair<Constant *, unsigned>>;
98 Constant *getConstantFwdRef(unsigned Idx, Type *Ty);
lib/Bitcode/Writer/BitcodeWriter.cpp 2338 const Constant *C = cast<Constant>(V);
2338 const Constant *C = cast<Constant>(V);
lib/Bitcode/Writer/ValueEnumerator.cpp 91 if (const Constant *C = dyn_cast<Constant>(V))
91 if (const Constant *C = dyn_cast<Constant>(V))
160 if ((isa<Constant>(*Op) && !isa<GlobalValue>(*Op)) ||
253 if (const Constant *C = dyn_cast<Constant>(V))
253 if (const Constant *C = dyn_cast<Constant>(V))
256 if (isa<Constant>(Op)) // Visit GlobalValues.
284 if (isa<Constant>(*Op) || isa<InlineAsm>(*Op)) // Visit GlobalValues.
823 if (const Constant *C = dyn_cast<Constant>(V)) {
823 if (const Constant *C = dyn_cast<Constant>(V)) {
897 const Constant *C = dyn_cast<Constant>(V);
897 const Constant *C = dyn_cast<Constant>(V);
963 if ((isa<Constant>(OI) && !isa<GlobalValue>(OI)) || isa<InlineAsm>(OI))
lib/CodeGen/AsmPrinter/AsmPrinter.cpp 1223 static unsigned getNumGlobalVariableUses(const Constant *C) {
1232 NumUses += getNumGlobalVariableUses(dyn_cast<Constant>(CU));
1255 NumGOTEquivUsers += getNumGlobalVariableUses(dyn_cast<Constant>(U));
1722 const Constant *C = nullptr;
1976 Constant *Func = nullptr;
1986 void AsmPrinter::EmitXXStructorList(const DataLayout &DL, const Constant *List,
2165 const MCExpr *AsmPrinter::lowerConstant(const Constant *CV) {
2190 if (Constant *C = ConstantFoldConstant(CE, getDataLayout()))
2231 Constant *Op = CE->getOperand(0);
2242 Constant *Op = CE->getOperand(0);
2317 static void emitGlobalConstantImpl(const DataLayout &DL, const Constant *C,
2319 const Constant *BaseCV = nullptr,
2356 Constant *Op0 = CA->getOperand(0);
2416 const Constant *BaseCV, uint64_t Offset) {
2447 const Constant *BaseCV, uint64_t Offset) {
2453 const Constant *Field = CS->getOperand(i);
2581 const Constant *BaseCst,
2668 static void emitGlobalConstantImpl(const DataLayout &DL, const Constant *CV,
2669 AsmPrinter &AP, const Constant *BaseCV,
2677 BaseCV = dyn_cast<Constant>(CV->user_back());
2726 Constant *New = ConstantFoldConstant(CE, DL);
2749 void AsmPrinter::EmitGlobalConstant(const DataLayout &DL, const Constant *CV) {
2796 const Constant *C = CPE.Val.ConstVal;
lib/CodeGen/AtomicExpandPass.cpp 438 Constant *DummyVal = Constant::getNullValue(Ty);
438 Constant *DummyVal = Constant::getNullValue(Ty);
1630 Constant *OrderingVal =
1632 Constant *Ordering2Val = nullptr;
lib/CodeGen/CodeGenPrepare.cpp 1202 Arg1 = ConstantExpr::getNeg(cast<Constant>(Arg1));
1234 if (isa<Constant>(A))
1288 if (isa<Constant>(A) && isa<Constant>(B))
1288 if (isa<Constant>(A) && isa<Constant>(B))
1313 Value *CmpVariableOperand = isa<Constant>(A) ? B : A;
1752 Value *Zero = Constant::getNullValue(Ty);
1865 Constant *RetVal = ConstantInt::getTrue(II->getContext());
3213 Map[V] = Constant::getNullValue(CommonType);
4840 SunkAddr = Constant::getNullValue(Addr->getType());
4997 SunkAddr = Constant::getNullValue(Addr->getType());
6412 Value *getConstantVector(Constant *Val, bool UseSplat) const {
6428 SmallVector<Constant *, 4> ConstVec;
6574 cast<Constant>(Val),
6903 Constant *NewUGEPIIdx =
6949 if (isa<Constant>(CI->getOperand(0)))
lib/CodeGen/ExpandMemCmp.cpp 350 if (auto *Source1C = dyn_cast<Constant>(Source1))
350 if (auto *Source1C = dyn_cast<Constant>(Source1))
356 if (auto *Source2C = dyn_cast<Constant>(Source2))
356 if (auto *Source2C = dyn_cast<Constant>(Source2))
lib/CodeGen/GlobalISel/IRTranslator.cpp 192 if (!isa<Constant>(Val)) {
200 auto &C = cast<Constant>(Val);
209 bool Success = translate(cast<Constant>(Val), VRegs->front());
308 if (isa<Constant>(U.getOperand(0)) &&
349 Res, getOrCreateVReg(*Constant::getNullValue(U.getType())));
352 Res, getOrCreateVReg(*Constant::getAllOnesValue(U.getType())));
1067 unsigned Field = cast<Constant>(Idx)->getUniqueInteger().getZExtValue();
1382 } else if (const auto *CI = dyn_cast<Constant>(V)) {
1382 } else if (const auto *CI = dyn_cast<Constant>(V)) {
1737 const Constant *PersonalityFn = MF->getFunction().getPersonalityFn();
1923 .addShuffleMask(cast<Constant>(U.getOperand(2)));
2109 bool IRTranslator::translate(const Constant &C, Register Reg) {
2134 Constant &Elt = *CAZ->getElementValue(i);
2144 Constant &Elt = *CV->getElementAsConstant(i);
lib/CodeGen/GlobalISel/LegalizerHelper.cpp 4111 const Constant *ShufMask = MI.getOperand(3).getShuffleMask();
lib/CodeGen/GlobalISel/MachineIRBuilder.cpp 138 MachineInstrBuilder MachineIRBuilder::buildConstDbgValue(const Constant &C,
lib/CodeGen/GlobalMerge.cpp 454 std::vector<Constant*> Inits;
502 Constant *MergedInit = ConstantStruct::get(MergedTy, Inits);
534 Constant *Idx[2] = {
538 Constant *GEP =
lib/CodeGen/IntrinsicLowering.cpp 270 CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
317 CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
lib/CodeGen/LowerEmuTLS.cpp 94 Constant *NullPtr = ConstantPointerNull::get(VoidPtrType);
97 const Constant *InitValue = nullptr;
150 Constant *ElementValues[4] = {
155 ArrayRef<Constant*> ElementValueArray(ElementValues, 4);
lib/CodeGen/MIRParser/MIParser.cpp 424 const Constant *&C);
425 bool parseIRConstant(StringRef::iterator Loc, const Constant *&C);
1489 const Constant *&C) {
1499 bool MIParser::parseIRConstant(StringRef::iterator Loc, const Constant *&C) {
1611 const Constant *C = nullptr;
1624 const Constant *C = nullptr;
2298 SmallVector<Constant *, 32> ShufMask;
2326 Constant *C = AllZero ? Constant::getNullValue(VT) : UndefValue::get(VT);
2326 Constant *C = AllZero ? Constant::getNullValue(VT) : UndefValue::get(VT);
2617 const Constant *C = nullptr;
lib/CodeGen/MIRParser/MIRParser.cpp 820 const Constant *Value = dyn_cast_or_null<Constant>(
820 const Constant *Value = dyn_cast_or_null<Constant>(
lib/CodeGen/MachineFunction.cpp 676 auto *CVal = cast<Constant>(Val);
676 auto *CVal = cast<Constant>(Val);
1017 static bool CanShareConstantPoolEntry(const Constant *A, const Constant *B,
1017 static bool CanShareConstantPoolEntry(const Constant *A, const Constant *B,
1060 unsigned MachineConstantPool::getConstantPoolIndex(const Constant *C,
lib/CodeGen/MachineOperand.cpp 467 if (isa<Constant>(V)) {
943 const Constant* C = getShuffleMask();
lib/CodeGen/MachineVerifier.cpp 1411 const Constant *Mask = MaskOp.getShuffleMask();
lib/CodeGen/ScalarizeMaskedMemIntrin.cpp 80 Constant *C = dyn_cast<Constant>(Mask);
80 Constant *C = dyn_cast<Constant>(Mask);
86 Constant *CElt = C->getAggregateElement(i);
145 if (isa<Constant>(Mask) && cast<Constant>(Mask)->isAllOnesValue()) {
145 if (isa<Constant>(Mask) && cast<Constant>(Mask)->isAllOnesValue()) {
165 if (cast<Constant>(Mask)->getAggregateElement(Idx)->isNullValue())
282 if (isa<Constant>(Mask) && cast<Constant>(Mask)->isAllOnesValue()) {
282 if (isa<Constant>(Mask) && cast<Constant>(Mask)->isAllOnesValue()) {
298 if (cast<Constant>(Mask)->getAggregateElement(Idx)->isNullValue())
413 if (cast<Constant>(Mask)->getAggregateElement(Idx)->isNullValue())
537 if (cast<Constant>(Mask)->getAggregateElement(Idx)->isNullValue())
623 if (cast<Constant>(Mask)->getAggregateElement(Idx)->isNullValue())
733 if (cast<Constant>(Mask)->getAggregateElement(Idx)->isNullValue())
lib/CodeGen/SelectionDAG/DAGCombiner.cpp19999 Constant *Elts[] = { const_cast<ConstantFP*>(FV->getConstantFPValue()),
20005 Constant *CA = ConstantArray::get(ArrayType::get(FPTy, 2), Elts);
lib/CodeGen/SelectionDAG/FastISel.cpp 414 Constant::getNullValue(DL.getIntPtrType(V->getContext())));
458 if (isa<Constant>(V))
459 Reg = fastMaterializeConstant(cast<Constant>(V));
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp 1938 SmallVector<Constant*, 16> CV;
1961 Constant *CP = ConstantVector::get(CV);
2427 Constant *FudgeFactor = ConstantInt::get(
lib/CodeGen/SelectionDAG/SelectionDAG.cpp 1423 SDValue SelectionDAG::getConstantPool(const Constant *C, EVT VT,
2921 const Constant *Cst = TLI->getTargetConstantFromLoad(LD);
2929 if (const Constant *Splat = Cst->getSplatValue()) {
2942 if (Constant *Elt = Cst->getAggregateElement(i)) {
3901 if (const Constant *Cst = TLI->getTargetConstantFromLoad(LD)) {
3911 if (Constant *Elt = Cst->getAggregateElement(i)) {
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp 1443 if (const Constant *C = dyn_cast<Constant>(V)) {
1443 if (const Constant *C = dyn_cast<Constant>(V)) {
2211 isa<Constant>(Cases[0].CmpRHS) &&
2212 cast<Constant>(Cases[0].CmpRHS)->isNullValue()) {
2866 const Constant *PersonalityFn = FuncInfo.Fn->getPersonalityFn();
2964 if (isa<Constant>(I.getOperand(0)) &&
3542 Constant *MaskV = cast<Constant>(I.getOperand(2));
3542 Constant *MaskV = cast<Constant>(I.getOperand(2));
3860 unsigned Field = cast<Constant>(Idx)->getUniqueInteger().getZExtValue();
3881 const auto *C = dyn_cast<Constant>(Idx);
3881 const auto *C = dyn_cast<Constant>(Idx);
4353 auto *C = dyn_cast<Constant>(GEP->getOperand(i));
4353 auto *C = dyn_cast<Constant>(GEP->getOperand(i));
6470 const Constant *TypeMap = cast<Constant>(I.getArgOperand(1));
6470 const Constant *TypeMap = cast<Constant>(I.getArgOperand(1));
7202 if (const Constant *LoadInput = dyn_cast<Constant>(PtrVal)) {
7202 if (const Constant *LoadInput = dyn_cast<Constant>(PtrVal)) {
7212 if (const Constant *LoadCst = ConstantFoldLoadFromConstPtr(
7853 cast<Constant>(OpVal), TLI.getPointerTy(DAG.getDataLayout()));
9961 if (const Constant *C = dyn_cast<Constant>(PHIOp)) {
9961 if (const Constant *C = dyn_cast<Constant>(PHIOp)) {
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h 406 DenseMap<const Constant *, unsigned> ConstantsOut;
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp 1203 cast<Constant>(CPI->getArgOperand(0))->isNullValue();
1228 const Constant *PersonalityFn = FuncInfo->Fn->getPersonalityFn();
lib/CodeGen/SelectionDAG/TargetLowering.cpp 2681 const Constant *TargetLowering::getTargetConstantFromLoad(LoadSDNode*) const {
lib/CodeGen/ShadowStackGCLowering.cpp 73 Constant *GetFrameMap(Function &F);
101 Constant *ShadowStackGCLowering::GetFrameMap(Function &F) {
107 SmallVector<Constant *, 16> Metadata;
109 Constant *C = cast<Constant>(Roots[I].first->getArgOperand(1));
109 Constant *C = cast<Constant>(Roots[I].first->getArgOperand(1));
118 Constant *BaseElts[] = {
123 Constant *DescriptorElts[] = {
130 Constant *FrameMap = ConstantStruct::get(STy, DescriptorElts);
145 Constant *GV = new GlobalVariable(*F.getParent(), FrameMap->getType(), true,
149 Constant *GEPIndices[2] = {
212 Constant::getNullValue(StackEntryPtrTy), "llvm_gc_root_chain");
214 Head->setInitializer(Constant::getNullValue(StackEntryPtrTy));
222 if (Constant *C = dyn_cast<Constant>(V))
222 if (Constant *C = dyn_cast<Constant>(V))
lib/CodeGen/TargetLoweringObjectFileImpl.cpp 737 const DataLayout &DL, SectionKind Kind, const Constant *C,
1049 const DataLayout &DL, SectionKind Kind, const Constant *C,
1610 static std::string scalarConstantToHexString(const Constant *C) {
1632 const DataLayout &DL, SectionKind Kind, const Constant *C,
lib/CodeGen/WasmEHPrepare.cpp 259 cast<Constant>(CPI->getArgOperand(0))->isNullValue())
lib/CodeGen/WinEHPrepare.cpp 148 Constant *TypeInfo = cast<Constant>(CPI->getArgOperand(0));
148 Constant *TypeInfo = cast<Constant>(CPI->getArgOperand(0));
354 const Constant *FilterOrNull =
355 cast<Constant>(CatchPad->getArgOperand(0)->stripPointerCasts());
lib/ExecutionEngine/ExecutionEngine.cpp 390 Constant *FP = CS->getOperand(1);
594 GenericValue ExecutionEngine::getConstantValue(const Constant *C) {
620 const Constant *ElemUndef = UndefValue::get(ElemTy);
644 Constant *Op0 = CE->getOperand(0);
1132 void ExecutionEngine::InitializeMemory(const Constant *Init, void *Addr) {
lib/ExecutionEngine/Interpreter/Execution.cpp 2107 } else if (Constant *CPV = dyn_cast<Constant>(V)) {
2107 } else if (Constant *CPV = dyn_cast<Constant>(V)) {
lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp 35 Constant *Aliasee = A.getAliasee();
lib/ExecutionEngine/Orc/ExecutionUtils.cpp 52 Constant *FuncC = CS->getOperand(1);
lib/ExecutionEngine/Orc/IndirectionUtils.cpp 219 Constant* createIRTypedAddress(FunctionType &FT, JITTargetAddress Addr) {
220 Constant *AddrIntVal =
222 Constant *AddrPtrVal =
229 const Twine &Name, Constant *Initializer) {
lib/FuzzMutate/OpDescriptor.cpp 15 void fuzzerop::makeConstantsWithType(Type *T, std::vector<Constant *> &Cs) {
33 std::vector<Constant *> fuzzerop::makeConstantsWithType(Type *T) {
34 std::vector<Constant *> Result;
lib/FuzzMutate/Operations.cpp 197 std::vector<Constant *> Result;
236 std::vector<Constant *> Result;
255 std::vector<Constant *> Result;
lib/IR/AsmWriter.cpp 123 if (const Constant *C = dyn_cast<Constant>(V))
123 if (const Constant *C = dyn_cast<Constant>(V))
171 if ((isa<Constant>(*Op) && !isa<GlobalValue>(*Op)) ||
258 if (const Constant *C = dyn_cast<Constant>(V))
258 if (const Constant *C = dyn_cast<Constant>(V))
261 if (isa<Constant>(Op)) // Visit GlobalValues.
288 if (isa<Constant>(*Op) || isa<InlineAsm>(*Op)) // Visit GlobalValues.
1289 static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
2234 const Constant *CV = dyn_cast<Constant>(V);
2234 const Constant *CV = dyn_cast<Constant>(V);
3345 const Constant *IS = GIS->getIndirectSymbol();
4320 } else if (const Constant *C = dyn_cast<Constant>(this)) {
4320 } else if (const Constant *C = dyn_cast<Constant>(this)) {
4338 (!isa<Constant>(V) && !isa<MetadataAsValue>(V))) {
lib/IR/AutoUpgrade.cpp 853 Constant *Init = GV->getInitializer();
855 std::vector<Constant *> NewCtors(N);
857 auto Ctor = cast<Constant>(Init->getOperand(i));
860 Constant::getNullValue(IRB.getInt8PtrTy()));
862 Constant *NewInit = ConstantArray::get(ArrayType::get(EltTy, N), NewCtors);
880 Value *Res = Constant::getNullValue(VecTy);
914 Value *Res = Constant::getNullValue(VecTy);
959 if (const auto *C = dyn_cast<Constant>(Mask))
959 if (const auto *C = dyn_cast<Constant>(Mask))
970 if (const auto *C = dyn_cast<Constant>(Mask))
970 if (const auto *C = dyn_cast<Constant>(Mask))
1003 return llvm::Constant::getNullValue(Op0->getType());
1010 Op0 = llvm::Constant::getNullValue(Op0->getType());
1166 return Constant::getNullValue(Ty); // FALSE
1168 return Constant::getAllOnesValue(Ty); // TRUE
1222 if (const auto *C = dyn_cast<Constant>(Mask))
1222 if (const auto *C = dyn_cast<Constant>(Mask))
1242 if (const auto *C = dyn_cast<Constant>(Mask))
1242 if (const auto *C = dyn_cast<Constant>(Mask))
1255 Value *Zero = llvm::Constant::getNullValue(Ty);
1288 Constant *ShiftAmt = ConstantInt::get(Ty, 32);
1295 Constant *Mask = ConstantInt::get(Ty, 0xffffffff);
1313 const auto *C = dyn_cast<Constant>(Mask);
1313 const auto *C = dyn_cast<Constant>(Mask);
1325 Constant::getNullValue(Vec->getType()),
1338 Cmp = Constant::getNullValue(llvm::VectorType::get(Builder.getInt1Ty(), NumElts));
1340 Cmp = Constant::getAllOnesValue(llvm::VectorType::get(Builder.getInt1Ty(), NumElts));
1830 Value *Zero = llvm::Constant::getNullValue(Ty);
2008 Value *Zero = llvm::Constant::getNullValue(Op->getType());
2340 Constant::getNullValue(MaskTy));
3081 Rep = Builder.CreateInsertElement(Constant::getNullValue(CI->getType()),
3128 Value *PassThru = IsMaskZ ? Constant::getNullValue(Rep->getType()) :
3185 Value *PassThru = IsMaskZ ? llvm::Constant::getNullValue(CI->getType()) :
3261 Value *PassThru = IsMaskZ ? llvm::Constant::getNullValue(CI->getType()) :
3428 Arg, llvm::Constant::getNullValue(Arg->getType()), "abs.cond");
3511 Args.push_back(Constant::getNullValue(CI->getOperand(0)->getType()));
3574 if (auto *Offset = dyn_cast_or_null<Constant>(CI->getArgOperand(1)))
3574 if (auto *Offset = dyn_cast_or_null<Constant>(CI->getArgOperand(1)))
3755 Constant::getNullValue(Type::getInt64Ty(Context))),
3760 Metadata *Elts[] = {&MD, &MD, ConstantAsMetadata::get(Constant::getNullValue(
3787 Value *llvm::UpgradeBitCastExpr(unsigned Opc, Constant *C, Type *DestTy) {
lib/IR/BasicBlock.cpp 72 Constant *Replacement =
lib/IR/ConstantFold.cpp 45 static Constant *BitCastConstantVector(Constant *CV, VectorType *DstTy) {
45 static Constant *BitCastConstantVector(Constant *CV, VectorType *DstTy) {
47 if (CV->isAllOnesValue()) return Constant::getAllOnesValue(DstTy);
48 if (CV->isNullValue()) return Constant::getNullValue(DstTy);
59 SmallVector<Constant*, 16> Result;
62 Constant *C =
101 static Constant *FoldBitCast(Constant *V, Type *DestTy) {
101 static Constant *FoldBitCast(Constant *V, Type *DestTy) {
114 Constant::getNullValue(Type::getInt32Ty(DPTy->getContext()));
146 return Constant::getNullValue(DestTy);
212 static Constant *ExtractConstantBytes(Constant *C, unsigned ByteStart,
212 static Constant *ExtractConstantBytes(Constant *C, unsigned ByteStart,
239 Constant *RHS = ExtractConstantBytes(CE->getOperand(1), ByteStart,ByteSize);
248 Constant *LHS = ExtractConstantBytes(CE->getOperand(0), ByteStart,ByteSize);
254 Constant *RHS = ExtractConstantBytes(CE->getOperand(1), ByteStart,ByteSize);
262 Constant *LHS = ExtractConstantBytes(CE->getOperand(0), ByteStart,ByteSize);
279 return Constant::getNullValue(
302 return Constant::getNullValue(
319 return Constant::getNullValue(IntegerType::get(CE->getContext(),
335 Constant *Res = CE->getOperand(0);
353 static Constant *getFoldedSizeOf(Type *Ty, Type *DestTy, bool Folded) {
355 Constant *N = ConstantInt::get(DestTy, ATy->getNumElements());
356 Constant *E = getFoldedSizeOf(ATy->getElementType(), DestTy, true);
367 Constant *MemberSize =
377 Constant *N = ConstantInt::get(DestTy, NumElems);
397 Constant *C = ConstantExpr::getSizeOf(Ty);
408 static Constant *getFoldedAlignOf(Type *Ty, Type *DestTy, bool Folded) {
412 Constant *C = ConstantExpr::getAlignOf(ATy->getElementType());
433 Constant *MemberAlign =
461 Constant *C = ConstantExpr::getAlignOf(Ty);
472 static Constant *getFoldedOffsetOf(Type *Ty, Constant *FieldNo, Type *DestTy,
472 static Constant *getFoldedOffsetOf(Type *Ty, Constant *FieldNo, Type *DestTy,
475 Constant *N = ConstantExpr::getCast(CastInst::getCastOpcode(FieldNo, false,
478 Constant *E = getFoldedSizeOf(ATy->getElementType(), DestTy, true);
489 Constant *MemberSize =
499 Constant *N = ConstantExpr::getCast(CastInst::getCastOpcode(FieldNo,
514 Constant *C = ConstantExpr::getOffsetOf(Ty, FieldNo);
521 Constant *llvm::ConstantFoldCastInstruction(unsigned opc, Constant *V,
521 Constant *llvm::ConstantFoldCastInstruction(unsigned opc, Constant *V,
529 return Constant::getNullValue(DestTy);
535 return Constant::getNullValue(DestTy);
575 SmallVector<Constant*, 16> res;
580 Constant *C =
651 Constant *Idx = CE->getOperand(1);
653 if (Constant *C = getFoldedSizeOf(Ty, DestTy, !isOne)) {
673 if (Constant *C = getFoldedOffsetOf(Ty, CE->getOperand(2),
721 if (Constant *Res = ExtractConstantBytes(V, 0, DestBitWidth / 8))
733 Constant *llvm::ConstantFoldSelectInstruction(Constant *Cond,
733 Constant *llvm::ConstantFoldSelectInstruction(Constant *Cond,
734 Constant *V1, Constant *V2) {
734 Constant *V1, Constant *V2) {
741 SmallVector<Constant*, 16> Result;
744 Constant *V;
745 Constant *V1Element = ConstantExpr::getExtractElement(V1,
747 Constant *V2Element = ConstantExpr::getExtractElement(V2,
749 auto *Cond = cast<Constant>(CondV->getOperand(i));
749 auto *Cond = cast<Constant>(CondV->getOperand(i));
788 Constant *llvm::ConstantFoldExtractElementInstruction(Constant *Val,
788 Constant *llvm::ConstantFoldExtractElementInstruction(Constant *Val,
789 Constant *Idx) {
806 SmallVector<Constant *, 8> Ops;
809 Constant *Op = CE->getOperand(i);
811 Constant *ScalarOp = ConstantFoldExtractElementInstruction(Op, Idx);
827 Constant *llvm::ConstantFoldInsertElementInstruction(Constant *Val,
827 Constant *llvm::ConstantFoldInsertElementInstruction(Constant *Val,
828 Constant *Elt,
829 Constant *Idx) {
840 SmallVector<Constant*, 16> Result;
850 Constant *C = ConstantExpr::getExtractElement(Val, ConstantInt::get(Ty, i));
857 Constant *llvm::ConstantFoldShuffleVectorInstruction(Constant *V1,
857 Constant *llvm::ConstantFoldShuffleVectorInstruction(Constant *V1,
858 Constant *V2,
859 Constant *Mask) {
873 SmallVector<Constant*, 32> Result;
880 Constant *InElt;
898 Constant *llvm::ConstantFoldExtractValueInstruction(Constant *Agg,
898 Constant *llvm::ConstantFoldExtractValueInstruction(Constant *Agg,
904 if (Constant *C = Agg->getAggregateElement(Idxs[0]))
910 Constant *llvm::ConstantFoldInsertValueInstruction(Constant *Agg,
910 Constant *llvm::ConstantFoldInsertValueInstruction(Constant *Agg,
911 Constant *Val,
923 SmallVector<Constant*, 32> Result;
925 Constant *C = Agg->getAggregateElement(i);
941 Constant *llvm::ConstantFoldUnaryInstruction(unsigned Opcode, Constant *C) {
941 Constant *llvm::ConstantFoldUnaryInstruction(unsigned Opcode, Constant *C) {
971 SmallVector<Constant*, 16> Result;
974 Constant *ExtractIdx = ConstantInt::get(Ty, i);
975 Constant *Elt = ConstantExpr::getExtractElement(C, ExtractIdx);
987 Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode, Constant *C1,
987 Constant *llvm::ConstantFoldBinaryInstruction(unsigned Opcode, Constant *C1,
988 Constant *C2) {
1000 return Constant::getNullValue(C1->getType());
1008 return Constant::getNullValue(C1->getType()); // undef & X -> 0
1020 return Constant::getNullValue(C1->getType());
1032 return Constant::getNullValue(C1->getType());
1042 return Constant::getNullValue(C1->getType());
1046 return Constant::getAllOnesValue(C1->getType()); // undef | X -> ~0
1055 return Constant::getNullValue(C1->getType());
1065 return Constant::getNullValue(C1->getType());
1074 return Constant::getNullValue(C1->getType());
1123 return Constant::getNullValue(CI2->getType()); // X % 1 == 0
1179 return Constant::getNullValue(CI2->getType());
1309 SmallVector<Constant*, 16> Result;
1312 Constant *ExtractIdx = ConstantInt::get(Ty, i);
1313 Constant *LHS = ConstantExpr::getExtractElement(C1, ExtractIdx);
1314 Constant *RHS = ConstantExpr::getExtractElement(C2, ExtractIdx);
1334 Constant *T = ConstantExpr::get(Opcode, CE1->getOperand(1), C2);
1402 static int IdxCompare(Constant *C1, Constant *C2, Type *ElTy) {
1402 static int IdxCompare(Constant *C1, Constant *C2, Type *ElTy) {
1446 static FCmpInst::Predicate evaluateFCmpRelation(Constant *V1, Constant *V2) {
1446 static FCmpInst::Predicate evaluateFCmpRelation(Constant *V1, Constant *V2) {
1535 static ICmpInst::Predicate evaluateICmpRelation(Constant *V1, Constant *V2,
1535 static ICmpInst::Predicate evaluateICmpRelation(Constant *V1, Constant *V2,
1627 Constant *CE1Op0 = CE1->getOperand(0);
1652 Constant::getNullValue(CE1Op0->getType()),
1712 Constant *CE2Op0 = CE2->getOperand(0);
1785 Constant *llvm::ConstantFoldCompareInstruction(unsigned short pred,
1786 Constant *C1, Constant *C2) {
1786 Constant *C1, Constant *C2) {
1796 return Constant::getNullValue(ResultTy);
1799 return Constant::getAllOnesValue(ResultTy);
1883 case FCmpInst::FCMP_FALSE: return Constant::getNullValue(ResultTy);
1884 case FCmpInst::FCMP_TRUE: return Constant::getAllOnesValue(ResultTy);
1923 SmallVector<Constant*, 4> ResElts;
1927 Constant *C1E =
1929 Constant *C2E =
2081 Constant *CE2Op0 = CE2->getOperand(0);
2085 Constant *Inverse = ConstantExpr::getBitCast(C1, CE2Op0->getType());
2096 Constant *CE1Op0 = CE1->getOperand(0);
2097 Constant *CE1Inverse = ConstantExpr::getTrunc(CE1, CE1Op0->getType());
2100 Constant *C2Inverse = ConstantExpr::getTrunc(C2, CE1Op0->getType());
2127 if (cast<Constant>(Idxs[0])->isNullValue()) return true;
2142 if (!cast<Constant>(Idxs[i])->isNullValue())
2164 Constant *llvm::ConstantFoldGetElementPtr(Type *PointeeTy, Constant *C,
2164 Constant *llvm::ConstantFoldGetElementPtr(Type *PointeeTy, Constant *C,
2176 Constant *Idx0 = cast<Constant>(Idxs[0]);
2176 Constant *Idx0 = cast<Constant>(Idxs[0]);
2187 !cast<Constant>(Idxs[i])->isNullValue()) {
2210 return Constant::getNullValue(GEPTy);
2263 Constant *Combined = CE->getOperand(CE->getNumOperands()-1);
2275 Constant *C1 = ConstantExpr::getSExtOrBitCast(Idx0, CommonTy);
2276 Constant *C2 = ConstantExpr::getSExtOrBitCast(Combined, CommonTy);
2332 SmallVector<Constant *, 8> NewIdxs;
2402 Constant *CurrIdx = cast<Constant>(Idxs[i]);
2402 Constant *CurrIdx = cast<Constant>(Idxs[i]);
2403 auto *PrevIdx =
2404 NewIdxs[i - 1] ? NewIdxs[i - 1] : cast<Constant>(Idxs[i - 1]);
2417 Constant *Factor =
2427 Constant *Div = ConstantExpr::getSDiv(CurrIdx, Factor);
2455 if (!NewIdxs[i]) NewIdxs[i] = cast<Constant>(Idxs[i]);
lib/IR/ConstantFold.h 30 Constant *ConstantFoldCastInstruction(
32 Constant *V, ///< The source constant
35 Constant *ConstantFoldSelectInstruction(Constant *Cond,
35 Constant *ConstantFoldSelectInstruction(Constant *Cond,
36 Constant *V1, Constant *V2);
36 Constant *V1, Constant *V2);
37 Constant *ConstantFoldExtractElementInstruction(Constant *Val, Constant *Idx);
37 Constant *ConstantFoldExtractElementInstruction(Constant *Val, Constant *Idx);
37 Constant *ConstantFoldExtractElementInstruction(Constant *Val, Constant *Idx);
38 Constant *ConstantFoldInsertElementInstruction(Constant *Val, Constant *Elt,
38 Constant *ConstantFoldInsertElementInstruction(Constant *Val, Constant *Elt,
38 Constant *ConstantFoldInsertElementInstruction(Constant *Val, Constant *Elt,
39 Constant *Idx);
40 Constant *ConstantFoldShuffleVectorInstruction(Constant *V1, Constant *V2,
40 Constant *ConstantFoldShuffleVectorInstruction(Constant *V1, Constant *V2,
40 Constant *ConstantFoldShuffleVectorInstruction(Constant *V1, Constant *V2,
41 Constant *Mask);
42 Constant *ConstantFoldExtractValueInstruction(Constant *Agg,
42 Constant *ConstantFoldExtractValueInstruction(Constant *Agg,
44 Constant *ConstantFoldInsertValueInstruction(Constant *Agg, Constant *Val,
44 Constant *ConstantFoldInsertValueInstruction(Constant *Agg, Constant *Val,
44 Constant *ConstantFoldInsertValueInstruction(Constant *Agg, Constant *Val,
46 Constant *ConstantFoldUnaryInstruction(unsigned Opcode, Constant *V);
46 Constant *ConstantFoldUnaryInstruction(unsigned Opcode, Constant *V);
47 Constant *ConstantFoldBinaryInstruction(unsigned Opcode, Constant *V1,
47 Constant *ConstantFoldBinaryInstruction(unsigned Opcode, Constant *V1,
48 Constant *V2);
49 Constant *ConstantFoldCompareInstruction(unsigned short predicate,
50 Constant *C1, Constant *C2);
50 Constant *C1, Constant *C2);
51 Constant *ConstantFoldGetElementPtr(Type *Ty, Constant *C, bool InBounds,
51 Constant *ConstantFoldGetElementPtr(Type *Ty, Constant *C, bool InBounds,
lib/IR/Constants.cpp 111 if (Constant *Splat = CV->getSplatValue())
137 if (Constant *Splat = CV->getSplatValue())
163 if (Constant *Splat = CV->getSplatValue())
191 Constant *Elt = this->getAggregateElement(i);
259 auto *Cy = dyn_cast<Constant>(Y);
259 auto *Cy = dyn_cast<Constant>(Y);
289 Constant *Constant::getNullValue(Type *Ty) {
326 Constant *Constant::getIntegerValue(Type *Ty, const APInt &V) {
330 Constant *C = ConstantInt::get(Ty->getContext(), V);
343 Constant *Constant::getAllOnesValue(Type *Ty) {
359 Constant *Constant::getAggregateElement(unsigned Elt) const {
375 Constant *Constant::getAggregateElement(Constant *Elt) const {
375 Constant *Constant::getAggregateElement(Constant *Elt) const {
409 if (!isa<Constant>(V)) {
416 cast<Constant>(V)->destroyConstant();
426 static bool canTrapImpl(const Constant *C,
464 ConstHasGlobalValuePredicate(const Constant *C,
466 SmallPtrSet<const Constant *, 8> Visited;
467 SmallVector<const Constant *, 8> WorkList;
472 const Constant *WorkItem = WorkList.pop_back_val();
477 const Constant *ConstOp = dyn_cast<Constant>(Op);
477 const Constant *ConstOp = dyn_cast<Constant>(Op);
503 const Constant *UC = dyn_cast<Constant>(U);
503 const Constant *UC = dyn_cast<Constant>(U);
526 Constant *LHSOp0 = LHS->getOperand(0);
527 Constant *RHSOp0 = RHS->getOperand(0);
549 Result |= cast<Constant>(getOperand(i))->needsRelocation();
556 static bool removeDeadUsersOfConstant(const Constant *C) {
560 const Constant *User = dyn_cast<Constant>(C->user_back());
560 const Constant *User = dyn_cast<Constant>(C->user_back());
575 const Constant *User = dyn_cast<Constant>(*I);
575 const Constant *User = dyn_cast<Constant>(*I);
623 Constant *ConstantInt::getTrue(Type *Ty) {
631 Constant *ConstantInt::getFalse(Type *Ty) {
653 Constant *ConstantInt::get(Type *Ty, uint64_t V, bool isSigned) {
654 Constant *C = get(cast<IntegerType>(Ty->getScalarType()), V, isSigned);
671 Constant *ConstantInt::getSigned(Type *Ty, int64_t V) {
675 Constant *ConstantInt::get(Type *Ty, const APInt& V) {
716 Constant *ConstantFP::get(Type *Ty, double V) {
723 Constant *C = get(Context, FV);
732 Constant *ConstantFP::get(Type *Ty, const APFloat &V) {
744 Constant *ConstantFP::get(Type *Ty, StringRef Str) {
748 Constant *C = get(Context, FV);
757 Constant *ConstantFP::getNaN(Type *Ty, bool Negative, uint64_t Payload) {
760 Constant *C = get(Ty->getContext(), NaN);
768 Constant *ConstantFP::getQNaN(Type *Ty, bool Negative, APInt *Payload) {
771 Constant *C = get(Ty->getContext(), NaN);
779 Constant *ConstantFP::getSNaN(Type *Ty, bool Negative, APInt *Payload) {
782 Constant *C = get(Ty->getContext(), NaN);
790 Constant *ConstantFP::getNegativeZero(Type *Ty) {
793 Constant *C = get(Ty->getContext(), NegZero);
802 Constant *ConstantFP::getZeroValueForNegation(Type *Ty) {
806 return Constant::getNullValue(Ty);
839 Constant *ConstantFP::getInfinity(Type *Ty, bool Negative) {
841 Constant *C = get(Ty->getContext(), APFloat::getInf(Semantics, Negative));
868 Constant *ConstantAggregateZero::getSequentialElement() const {
869 return Constant::getNullValue(getType()->getSequentialElementType());
872 Constant *ConstantAggregateZero::getStructElement(unsigned Elt) const {
873 return Constant::getNullValue(getType()->getStructElementType(Elt));
876 Constant *ConstantAggregateZero::getElementValue(Constant *C) const {
876 Constant *ConstantAggregateZero::getElementValue(Constant *C) const {
882 Constant *ConstantAggregateZero::getElementValue(unsigned Idx) const {
909 UndefValue *UndefValue::getElementValue(Constant *C) const {
941 static Constant *getIntSequenceIfElementsMatch(ArrayRef<Constant *> V) {
941 static Constant *getIntSequenceIfElementsMatch(ArrayRef<Constant *> V) {
945 for (Constant *C : V)
954 static Constant *getFPSequenceIfElementsMatch(ArrayRef<Constant *> V) {
954 static Constant *getFPSequenceIfElementsMatch(ArrayRef<Constant *> V) {
958 for (Constant *C : V)
967 static Constant *getSequenceIfElementsMatch(Constant *C,
967 static Constant *getSequenceIfElementsMatch(Constant *C,
968 ArrayRef<Constant *> V) {
994 ArrayRef<Constant *> V)
1008 ConstantArray::ConstantArray(ArrayType *T, ArrayRef<Constant *> V)
1014 Constant *ConstantArray::get(ArrayType *Ty, ArrayRef<Constant*> V) {
1014 Constant *ConstantArray::get(ArrayType *Ty, ArrayRef<Constant*> V) {
1015 if (Constant *C = getImpl(Ty, V))
1020 Constant *ConstantArray::getImpl(ArrayType *Ty, ArrayRef<Constant*> V) {
1020 Constant *ConstantArray::getImpl(ArrayType *Ty, ArrayRef<Constant*> V) {
1033 Constant *C = V[0];
1050 ArrayRef<Constant*> V,
1061 StructType *ConstantStruct::getTypeForElements(ArrayRef<Constant*> V,
1068 ConstantStruct::ConstantStruct(StructType *T, ArrayRef<Constant *> V)
1075 Constant *ConstantStruct::get(StructType *ST, ArrayRef<Constant*> V) {
1075 Constant *ConstantStruct::get(StructType *ST, ArrayRef<Constant*> V) {
1103 ConstantVector::ConstantVector(VectorType *T, ArrayRef<Constant *> V)
1110 Constant *ConstantVector::get(ArrayRef<Constant*> V) {
1110 Constant *ConstantVector::get(ArrayRef<Constant*> V) {
1111 if (Constant *C = getImpl(V))
1117 Constant *ConstantVector::getImpl(ArrayRef<Constant*> V) {
1117 Constant *ConstantVector::getImpl(ArrayRef<Constant*> V) {
1123 Constant *C = V[0];
1150 Constant *ConstantVector::getSplat(unsigned NumElts, Constant *V) {
1150 Constant *ConstantVector::getSplat(unsigned NumElts, Constant *V) {
1157 SmallVector<Constant*, 32> Elts(NumElts, V);
1223 Constant *
1224 ConstantExpr::getWithOperandReplaced(unsigned OpNo, Constant *Op) const {
1230 SmallVector<Constant*, 8> NewOps;
1237 Constant *ConstantExpr::getWithOperands(ArrayRef<Constant *> Ops, Type *Ty,
1237 Constant *ConstantExpr::getWithOperands(ArrayRef<Constant *> Ops, Type *Ty,
1399 Constant *Constant::getSplatValue() const {
1410 Constant *ConstantVector::getSplatValue() const {
1412 Constant *Elt = getOperand(0);
1424 const Constant *C = this->getAggregateElement(0U);
1543 static Constant *getFoldedCast(Instruction::CastOps opc, Constant *C, Type *Ty,
1543 static Constant *getFoldedCast(Instruction::CastOps opc, Constant *C, Type *Ty,
1547 if (Constant *FC = ConstantFoldCastInstruction(opc, C, Ty))
1561 Constant *ConstantExpr::getCast(unsigned oc, Constant *C, Type *Ty,
1561 Constant *ConstantExpr::getCast(unsigned oc, Constant *C, Type *Ty,
1600 Constant *ConstantExpr::getZExtOrBitCast(Constant *C, Type *Ty) {
1600 Constant *ConstantExpr::getZExtOrBitCast(Constant *C, Type *Ty) {
1606 Constant *ConstantExpr::getSExtOrBitCast(Constant *C, Type *Ty) {
1606 Constant *ConstantExpr::getSExtOrBitCast(Constant *C, Type *Ty) {
1612 Constant *ConstantExpr::getTruncOrBitCast(Constant *C, Type *Ty) {
1612 Constant *ConstantExpr::getTruncOrBitCast(Constant *C, Type *Ty) {
1618 Constant *ConstantExpr::getPointerCast(Constant *S, Type *Ty) {
1618 Constant *ConstantExpr::getPointerCast(Constant *S, Type *Ty) {
1633 Constant *ConstantExpr::getPointerBitCastOrAddrSpaceCast(Constant *S,
1633 Constant *ConstantExpr::getPointerBitCastOrAddrSpaceCast(Constant *S,
1644 Constant *ConstantExpr::getIntegerCast(Constant *C, Type *Ty, bool isSigned) {
1644 Constant *ConstantExpr::getIntegerCast(Constant *C, Type *Ty, bool isSigned) {
1656 Constant *ConstantExpr::getFPCast(Constant *C, Type *Ty) {
1656 Constant *ConstantExpr::getFPCast(Constant *C, Type *Ty) {
1668 Constant *ConstantExpr::getTrunc(Constant *C, Type *Ty, bool OnlyIfReduced) {
1668 Constant *ConstantExpr::getTrunc(Constant *C, Type *Ty, bool OnlyIfReduced) {
1682 Constant *ConstantExpr::getSExt(Constant *C, Type *Ty, bool OnlyIfReduced) {
1682 Constant *ConstantExpr::getSExt(Constant *C, Type *Ty, bool OnlyIfReduced) {
1696 Constant *ConstantExpr::getZExt(Constant *C, Type *Ty, bool OnlyIfReduced) {
1696 Constant *ConstantExpr::getZExt(Constant *C, Type *Ty, bool OnlyIfReduced) {
1710 Constant *ConstantExpr::getFPTrunc(Constant *C, Type *Ty, bool OnlyIfReduced) {
1710 Constant *ConstantExpr::getFPTrunc(Constant *C, Type *Ty, bool OnlyIfReduced) {
1722 Constant *ConstantExpr::getFPExtend(Constant *C, Type *Ty, bool OnlyIfReduced) {
1722 Constant *ConstantExpr::getFPExtend(Constant *C, Type *Ty, bool OnlyIfReduced) {
1734 Constant *ConstantExpr::getUIToFP(Constant *C, Type *Ty, bool OnlyIfReduced) {
1734 Constant *ConstantExpr::getUIToFP(Constant *C, Type *Ty, bool OnlyIfReduced) {
1745 Constant *ConstantExpr::getSIToFP(Constant *C, Type *Ty, bool OnlyIfReduced) {
1745 Constant *ConstantExpr::getSIToFP(Constant *C, Type *Ty, bool OnlyIfReduced) {
1756 Constant *ConstantExpr::getFPToUI(Constant *C, Type *Ty, bool OnlyIfReduced) {
1756 Constant *ConstantExpr::getFPToUI(Constant *C, Type *Ty, bool OnlyIfReduced) {
1767 Constant *ConstantExpr::getFPToSI(Constant *C, Type *Ty, bool OnlyIfReduced) {
1767 Constant *ConstantExpr::getFPToSI(Constant *C, Type *Ty, bool OnlyIfReduced) {
1778 Constant *ConstantExpr::getPtrToInt(Constant *C, Type *DstTy,
1778 Constant *ConstantExpr::getPtrToInt(Constant *C, Type *DstTy,
1791 Constant *ConstantExpr::getIntToPtr(Constant *C, Type *DstTy,
1791 Constant *ConstantExpr::getIntToPtr(Constant *C, Type *DstTy,
1804 Constant *ConstantExpr::getBitCast(Constant *C, Type *DstTy,
1804 Constant *ConstantExpr::getBitCast(Constant *C, Type *DstTy,
1816 Constant *ConstantExpr::getAddrSpaceCast(Constant *C, Type *DstTy,
1816 Constant *ConstantExpr::getAddrSpaceCast(Constant *C, Type *DstTy,
1837 Constant *ConstantExpr::get(unsigned Opcode, Constant *C, unsigned Flags,
1837 Constant *ConstantExpr::get(unsigned Opcode, Constant *C, unsigned Flags,
1855 if (Constant *FC = ConstantFoldUnaryInstruction(Opcode, C))
1861 Constant *ArgVec[] = { C };
1868 Constant *ConstantExpr::get(unsigned Opcode, Constant *C1, Constant *C2,
1868 Constant *ConstantExpr::get(unsigned Opcode, Constant *C1, Constant *C2,
1868 Constant *ConstantExpr::get(unsigned Opcode, Constant *C1, Constant *C2,
1914 if (Constant *FC = ConstantFoldBinaryInstruction(Opcode, C1, C2))
1920 Constant *ArgVec[] = { C1, C2 };
1927 Constant *ConstantExpr::getSizeOf(Type* Ty) {
1930 Constant *GEPIdx = ConstantInt::get(Type::getInt32Ty(Ty->getContext()), 1);
1931 Constant *GEP = getGetElementPtr(
1932 Ty, Constant::getNullValue(PointerType::getUnqual(Ty)), GEPIdx);
1937 Constant *ConstantExpr::getAlignOf(Type* Ty) {
1941 Constant *NullPtr = Constant::getNullValue(AligningTy->getPointerTo(0));
1941 Constant *NullPtr = Constant::getNullValue(AligningTy->getPointerTo(0));
1942 Constant *Zero = ConstantInt::get(Type::getInt64Ty(Ty->getContext()), 0);
1943 Constant *One = ConstantInt::get(Type::getInt32Ty(Ty->getContext()), 1);
1944 Constant *Indices[2] = { Zero, One };
1945 Constant *GEP = getGetElementPtr(AligningTy, NullPtr, Indices);
1950 Constant *ConstantExpr::getOffsetOf(StructType* STy, unsigned FieldNo) {
1955 Constant *ConstantExpr::getOffsetOf(Type* Ty, Constant *FieldNo) {
1955 Constant *ConstantExpr::getOffsetOf(Type* Ty, Constant *FieldNo) {
1958 Constant *GEPIdx[] = {
1962 Constant *GEP = getGetElementPtr(
1963 Ty, Constant::getNullValue(PointerType::getUnqual(Ty)), GEPIdx);
1968 Constant *ConstantExpr::getCompare(unsigned short Predicate, Constant *C1,
1968 Constant *ConstantExpr::getCompare(unsigned short Predicate, Constant *C1,
1969 Constant *C2, bool OnlyIfReduced) {
1990 Constant *ConstantExpr::getSelect(Constant *C, Constant *V1, Constant *V2,
1990 Constant *ConstantExpr::getSelect(Constant *C, Constant *V1, Constant *V2,
1990 Constant *ConstantExpr::getSelect(Constant *C, Constant *V1, Constant *V2,
1990 Constant *ConstantExpr::getSelect(Constant *C, Constant *V1, Constant *V2,
1994 if (Constant *SC = ConstantFoldSelectInstruction(C, V1, V2))
2000 Constant *ArgVec[] = { C, V1, V2 };
2007 Constant *ConstantExpr::getGetElementPtr(Type *Ty, Constant *C,
2007 Constant *ConstantExpr::getGetElementPtr(Type *Ty, Constant *C,
2017 if (Constant *FC =
2041 std::vector<Constant*> ArgVec;
2049 Constant *Idx = cast<Constant>(Idxs[i]);
2049 Constant *Idx = cast<Constant>(Idxs[i]);
2065 Constant *ConstantExpr::getICmp(unsigned short pred, Constant *LHS,
2065 Constant *ConstantExpr::getICmp(unsigned short pred, Constant *LHS,
2066 Constant *RHS, bool OnlyIfReduced) {
2071 if (Constant *FC = ConstantFoldCompareInstruction(pred, LHS, RHS))
2078 Constant *ArgVec[] = { LHS, RHS };
2090 Constant *ConstantExpr::getFCmp(unsigned short pred, Constant *LHS,
2090 Constant *ConstantExpr::getFCmp(unsigned short pred, Constant *LHS,
2091 Constant *RHS, bool OnlyIfReduced) {
2096 if (Constant *FC = ConstantFoldCompareInstruction(pred, LHS, RHS))
2103 Constant *ArgVec[] = { LHS, RHS };
2115 Constant *ConstantExpr::getExtractElement(Constant *Val, Constant *Idx,
2115 Constant *ConstantExpr::getExtractElement(Constant *Val, Constant *Idx,
2115 Constant *ConstantExpr::getExtractElement(Constant *Val, Constant *Idx,
2122 if (Constant *FC = ConstantFoldExtractElementInstruction(Val, Idx))
2130 Constant *ArgVec[] = { Val, Idx };
2137 Constant *ConstantExpr::getInsertElement(Constant *Val, Constant *Elt,
2137 Constant *ConstantExpr::getInsertElement(Constant *Val, Constant *Elt,
2137 Constant *ConstantExpr::getInsertElement(Constant *Val, Constant *Elt,
2138 Constant *Idx, Type *OnlyIfReducedTy) {
2146 if (Constant *FC = ConstantFoldInsertElementInstruction(Val, Elt, Idx))
2153 Constant *ArgVec[] = { Val, Elt, Idx };
2160 Constant *ConstantExpr::getShuffleVector(Constant *V1, Constant *V2,
2160 Constant *ConstantExpr::getShuffleVector(Constant *V1, Constant *V2,
2160 Constant *ConstantExpr::getShuffleVector(Constant *V1, Constant *V2,
2161 Constant *Mask, Type *OnlyIfReducedTy) {
2165 if (Constant *FC = ConstantFoldShuffleVectorInstruction(V1, V2, Mask))
2176 Constant *ArgVec[] = { V1, V2, Mask };
2183 Constant *ConstantExpr::getInsertValue(Constant *Agg, Constant *Val,
2183 Constant *ConstantExpr::getInsertValue(Constant *Agg, Constant *Val,
2183 Constant *ConstantExpr::getInsertValue(Constant *Agg, Constant *Val,
2194 if (Constant *FC = ConstantFoldInsertValueInstruction(Agg, Val, Idxs))
2200 Constant *ArgVec[] = { Agg, Val };
2207 Constant *ConstantExpr::getExtractValue(Constant *Agg, ArrayRef<unsigned> Idxs,
2207 Constant *ConstantExpr::getExtractValue(Constant *Agg, ArrayRef<unsigned> Idxs,
2218 if (Constant *FC = ConstantFoldExtractValueInstruction(Agg, Idxs))
2224 Constant *ArgVec[] = { Agg };
2231 Constant *ConstantExpr::getNeg(Constant *C, bool HasNUW, bool HasNSW) {
2231 Constant *ConstantExpr::getNeg(Constant *C, bool HasNUW, bool HasNSW) {
2238 Constant *ConstantExpr::getFNeg(Constant *C) {
2238 Constant *ConstantExpr::getFNeg(Constant *C) {
2244 Constant *ConstantExpr::getNot(Constant *C) {
2244 Constant *ConstantExpr::getNot(Constant *C) {
2247 return get(Instruction::Xor, C, Constant::getAllOnesValue(C->getType()));
2250 Constant *ConstantExpr::getAdd(Constant *C1, Constant *C2,
2250 Constant *ConstantExpr::getAdd(Constant *C1, Constant *C2,
2250 Constant *ConstantExpr::getAdd(Constant *C1, Constant *C2,
2257 Constant *ConstantExpr::getFAdd(Constant *C1, Constant *C2) {
2257 Constant *ConstantExpr::getFAdd(Constant *C1, Constant *C2) {
2257 Constant *ConstantExpr::getFAdd(Constant *C1, Constant *C2) {
2261 Constant *ConstantExpr::getSub(Constant *C1, Constant *C2,
2261 Constant *ConstantExpr::getSub(Constant *C1, Constant *C2,
2261 Constant *ConstantExpr::getSub(Constant *C1, Constant *C2,
2268 Constant *ConstantExpr::getFSub(Constant *C1, Constant *C2) {
2268 Constant *ConstantExpr::getFSub(Constant *C1, Constant *C2) {
2268 Constant *ConstantExpr::getFSub(Constant *C1, Constant *C2) {
2272 Constant *ConstantExpr::getMul(Constant *C1, Constant *C2,
2272 Constant *ConstantExpr::getMul(Constant *C1, Constant *C2,
2272 Constant *ConstantExpr::getMul(Constant *C1, Constant *C2,
2279 Constant *ConstantExpr::getFMul(Constant *C1, Constant *C2) {
2279 Constant *ConstantExpr::getFMul(Constant *C1, Constant *C2) {
2279 Constant *ConstantExpr::getFMul(Constant *C1, Constant *C2) {
2283 Constant *ConstantExpr::getUDiv(Constant *C1, Constant *C2, bool isExact) {
2283 Constant *ConstantExpr::getUDiv(Constant *C1, Constant *C2, bool isExact) {
2283 Constant *ConstantExpr::getUDiv(Constant *C1, Constant *C2, bool isExact) {
2288 Constant *ConstantExpr::getSDiv(Constant *C1, Constant *C2, bool isExact) {
2288 Constant *ConstantExpr::getSDiv(Constant *C1, Constant *C2, bool isExact) {
2288 Constant *ConstantExpr::getSDiv(Constant *C1, Constant *C2, bool isExact) {
2293 Constant *ConstantExpr::getFDiv(Constant *C1, Constant *C2) {
2293 Constant *ConstantExpr::getFDiv(Constant *C1, Constant *C2) {
2293 Constant *ConstantExpr::getFDiv(Constant *C1, Constant *C2) {
2297 Constant *ConstantExpr::getURem(Constant *C1, Constant *C2) {
2297 Constant *ConstantExpr::getURem(Constant *C1, Constant *C2) {
2297 Constant *ConstantExpr::getURem(Constant *C1, Constant *C2) {
2301 Constant *ConstantExpr::getSRem(Constant *C1, Constant *C2) {
2301 Constant *ConstantExpr::getSRem(Constant *C1, Constant *C2) {
2301 Constant *ConstantExpr::getSRem(Constant *C1, Constant *C2) {
2305 Constant *ConstantExpr::getFRem(Constant *C1, Constant *C2) {
2305 Constant *ConstantExpr::getFRem(Constant *C1, Constant *C2) {
2305 Constant *ConstantExpr::getFRem(Constant *C1, Constant *C2) {
2309 Constant *ConstantExpr::getAnd(Constant *C1, Constant *C2) {
2309 Constant *ConstantExpr::getAnd(Constant *C1, Constant *C2) {
2309 Constant *ConstantExpr::getAnd(Constant *C1, Constant *C2) {
2313 Constant *ConstantExpr::getOr(Constant *C1, Constant *C2) {
2313 Constant *ConstantExpr::getOr(Constant *C1, Constant *C2) {
2313 Constant *ConstantExpr::getOr(Constant *C1, Constant *C2) {
2317 Constant *ConstantExpr::getXor(Constant *C1, Constant *C2) {
2317 Constant *ConstantExpr::getXor(Constant *C1, Constant *C2) {
2317 Constant *ConstantExpr::getXor(Constant *C1, Constant *C2) {
2321 Constant *ConstantExpr::getShl(Constant *C1, Constant *C2,
2321 Constant *ConstantExpr::getShl(Constant *C1, Constant *C2,
2321 Constant *ConstantExpr::getShl(Constant *C1, Constant *C2,
2328 Constant *ConstantExpr::getLShr(Constant *C1, Constant *C2, bool isExact) {
2328 Constant *ConstantExpr::getLShr(Constant *C1, Constant *C2, bool isExact) {
2328 Constant *ConstantExpr::getLShr(Constant *C1, Constant *C2, bool isExact) {
2333 Constant *ConstantExpr::getAShr(Constant *C1, Constant *C2, bool isExact) {
2333 Constant *ConstantExpr::getAShr(Constant *C1, Constant *C2, bool isExact) {
2333 Constant *ConstantExpr::getAShr(Constant *C1, Constant *C2, bool isExact) {
2338 Constant *ConstantExpr::getBinOpIdentity(unsigned Opcode, Type *Ty,
2348 return Constant::getNullValue(Ty);
2352 return Constant::getAllOnesValue(Ty);
2373 return Constant::getNullValue(Ty);
2384 Constant *ConstantExpr::getBinOpAbsorber(unsigned Opcode, Type *Ty) {
2391 return Constant::getAllOnesValue(Ty);
2395 return Constant::getNullValue(Ty);
2409 Type *SrcElementTy, Constant *C, ArrayRef<Constant *> IdxList, Type *DestTy)
2409 Type *SrcElementTy, Constant *C, ArrayRef<Constant *> IdxList, Type *DestTy)
2486 Constant *ConstantDataSequential::getImpl(StringRef Elements, Type *Ty) {
2560 Constant *ConstantDataArray::getFP(LLVMContext &Context,
2566 Constant *ConstantDataArray::getFP(LLVMContext &Context,
2572 Constant *ConstantDataArray::getFP(LLVMContext &Context,
2579 Constant *ConstantDataArray::getString(LLVMContext &Context,
2595 Constant *ConstantDataVector::get(LLVMContext &Context, ArrayRef<uint8_t> Elts){
2600 Constant *ConstantDataVector::get(LLVMContext &Context, ArrayRef<uint16_t> Elts){
2605 Constant *ConstantDataVector::get(LLVMContext &Context, ArrayRef<uint32_t> Elts){
2610 Constant *ConstantDataVector::get(LLVMContext &Context, ArrayRef<uint64_t> Elts){
2615 Constant *ConstantDataVector::get(LLVMContext &Context, ArrayRef<float> Elts) {
2620 Constant *ConstantDataVector::get(LLVMContext &Context, ArrayRef<double> Elts) {
2631 Constant *ConstantDataVector::getFP(LLVMContext &Context,
2637 Constant *ConstantDataVector::getFP(LLVMContext &Context,
2643 Constant *ConstantDataVector::getFP(LLVMContext &Context,
2650 Constant *ConstantDataVector::getSplat(unsigned NumElts, Constant *V) {
2650 Constant *ConstantDataVector::getSplat(unsigned NumElts, Constant *V) {
2773 Constant *ConstantDataSequential::getElementAsConstant(unsigned Elt) const {
2810 Constant *ConstantDataVector::getSplatValue() const {
2858 Constant *ToC = cast<Constant>(To);
2858 Constant *ToC = cast<Constant>(To);
2860 SmallVector<Constant*, 8> Values;
2872 Constant *Val = cast<Constant>(O->get());
2872 Constant *Val = cast<Constant>(O->get());
2889 if (Constant *C = getImpl(getType(), Values))
2899 Constant *ToC = cast<Constant>(To);
2899 Constant *ToC = cast<Constant>(To);
2903 SmallVector<Constant*, 8> Values;
2912 Constant *Val = cast<Constant>(O->get());
2912 Constant *Val = cast<Constant>(O->get());
2935 Constant *ToC = cast<Constant>(To);
2935 Constant *ToC = cast<Constant>(To);
2937 SmallVector<Constant*, 8> Values;
2942 Constant *Val = getOperand(i);
2951 if (Constant *C = getImpl(Values))
2961 Constant *To = cast<Constant>(ToV);
2961 Constant *To = cast<Constant>(ToV);
2963 SmallVector<Constant*, 8> NewOps;
2967 Constant *Op = getOperand(i);
2977 if (Constant *C = getWithOperands(NewOps, getType(), true))
lib/IR/ConstantsContext.h 47 UnaryConstantExpr(unsigned Opcode, Constant *C, Type *Ty)
64 BinaryConstantExpr(unsigned Opcode, Constant *C1, Constant *C2,
64 BinaryConstantExpr(unsigned Opcode, Constant *C1, Constant *C2,
85 SelectConstantExpr(Constant *C1, Constant *C2, Constant *C3)
85 SelectConstantExpr(Constant *C1, Constant *C2, Constant *C3)
85 SelectConstantExpr(Constant *C1, Constant *C2, Constant *C3)
106 ExtractElementConstantExpr(Constant *C1, Constant *C2)
106 ExtractElementConstantExpr(Constant *C1, Constant *C2)
127 InsertElementConstantExpr(Constant *C1, Constant *C2, Constant *C3)
127 InsertElementConstantExpr(Constant *C1, Constant *C2, Constant *C3)
127 InsertElementConstantExpr(Constant *C1, Constant *C2, Constant *C3)
149 ShuffleVectorConstantExpr(Constant *C1, Constant *C2, Constant *C3)
149 ShuffleVectorConstantExpr(Constant *C1, Constant *C2, Constant *C3)
149 ShuffleVectorConstantExpr(Constant *C1, Constant *C2, Constant *C3)
174 ExtractValueConstantExpr(Constant *Agg, ArrayRef<unsigned> IdxList,
205 InsertValueConstantExpr(Constant *Agg, Constant *Val,
205 InsertValueConstantExpr(Constant *Agg, Constant *Val,
238 GetElementPtrConstantExpr(Type *SrcElementTy, Constant *C,
239 ArrayRef<Constant *> IdxList, Type *DestTy);
242 static GetElementPtrConstantExpr *Create(Type *SrcElementTy, Constant *C,
243 ArrayRef<Constant *> IdxList,
272 unsigned short pred, Constant* LHS, Constant* RHS)
272 unsigned short pred, Constant* LHS, Constant* RHS)
373 ArrayRef<Constant *> Operands;
375 ConstantAggrKeyType(ArrayRef<Constant *> Operands) : Operands(Operands) {}
377 ConstantAggrKeyType(ArrayRef<Constant *> Operands, const ConstantClass *)
381 SmallVectorImpl<Constant *> &Storage) {
427 InlineAsmKeyType(const InlineAsm *Asm, SmallVectorImpl<Constant *> &)
466 ArrayRef<Constant *> Ops;
470 ConstantExprKeyType(unsigned Opcode, ArrayRef<Constant *> Ops,
479 ConstantExprKeyType(ArrayRef<Constant *> Operands, const ConstantExpr *CE)
487 SmallVectorImpl<Constant *> &Storage)
592 SmallVector<Constant *, 32> Storage;
673 ConstantClass *replaceOperandsInPlace(ArrayRef<Constant *> Operands,
675 Constant *To, unsigned NumUpdated = 0,
lib/IR/Core.cpp 1017 return wrap(Constant::getNullValue(unwrap(Ty)));
1021 return wrap(Constant::getAllOnesValue(unwrap(Ty)));
1029 return isa<Constant>(unwrap(Ty));
1033 if (Constant *C = dyn_cast<Constant>(unwrap(Val)))
1033 if (Constant *C = dyn_cast<Constant>(unwrap(Val)))
1078 else if (auto *C = dyn_cast<Constant>(V))
1078 else if (auto *C = dyn_cast<Constant>(V))
1106 if (auto *C = dyn_cast<Constant>(V))
1106 if (auto *C = dyn_cast<Constant>(V))
1399 ArrayRef<Constant*> V(unwrap<Constant>(ConstantVals, Length), Length);
1399 ArrayRef<Constant*> V(unwrap<Constant>(ConstantVals, Length), Length);
1406 Constant **Elements = unwrap<Constant>(ConstantVals, Count);
1406 Constant **Elements = unwrap<Constant>(ConstantVals, Count);
1420 Constant **Elements = unwrap<Constant>(ConstantVals, Count);
1420 Constant **Elements = unwrap<Constant>(ConstantVals, Count);
1428 unwrap<Constant>(ScalarConstantVals, Size), Size)));
1468 return wrap(ConstantExpr::getNeg(unwrap<Constant>(ConstantVal)));
1472 return wrap(ConstantExpr::getNSWNeg(unwrap<Constant>(ConstantVal)));
1476 return wrap(ConstantExpr::getNUWNeg(unwrap<Constant>(ConstantVal)));
1481 return wrap(ConstantExpr::getFNeg(unwrap<Constant>(ConstantVal)));
1485 return wrap(ConstantExpr::getNot(unwrap<Constant>(ConstantVal)));
1489 return wrap(ConstantExpr::getAdd(unwrap<Constant>(LHSConstant),
1490 unwrap<Constant>(RHSConstant)));
1495 return wrap(ConstantExpr::getNSWAdd(unwrap<Constant>(LHSConstant),
1496 unwrap<Constant>(RHSConstant)));
1501 return wrap(ConstantExpr::getNUWAdd(unwrap<Constant>(LHSConstant),
1502 unwrap<Constant>(RHSConstant)));
1506 return wrap(ConstantExpr::getFAdd(unwrap<Constant>(LHSConstant),
1507 unwrap<Constant>(RHSConstant)));
1511 return wrap(ConstantExpr::getSub(unwrap<Constant>(LHSConstant),
1512 unwrap<Constant>(RHSConstant)));
1517 return wrap(ConstantExpr::getNSWSub(unwrap<Constant>(LHSConstant),
1518 unwrap<Constant>(RHSConstant)));
1523 return wrap(ConstantExpr::getNUWSub(unwrap<Constant>(LHSConstant),
1524 unwrap<Constant>(RHSConstant)));
1528 return wrap(ConstantExpr::getFSub(unwrap<Constant>(LHSConstant),
1529 unwrap<Constant>(RHSConstant)));
1533 return wrap(ConstantExpr::getMul(unwrap<Constant>(LHSConstant),
1534 unwrap<Constant>(RHSConstant)));
1539 return wrap(ConstantExpr::getNSWMul(unwrap<Constant>(LHSConstant),
1540 unwrap<Constant>(RHSConstant)));
1545 return wrap(ConstantExpr::getNUWMul(unwrap<Constant>(LHSConstant),
1546 unwrap<Constant>(RHSConstant)));
1550 return wrap(ConstantExpr::getFMul(unwrap<Constant>(LHSConstant),
1551 unwrap<Constant>(RHSConstant)));
1555 return wrap(ConstantExpr::getUDiv(unwrap<Constant>(LHSConstant),
1556 unwrap<Constant>(RHSConstant)));
1561 return wrap(ConstantExpr::getExactUDiv(unwrap<Constant>(LHSConstant),
1562 unwrap<Constant>(RHSConstant)));
1566 return wrap(ConstantExpr::getSDiv(unwrap<Constant>(LHSConstant),
1567 unwrap<Constant>(RHSConstant)));
1572 return wrap(ConstantExpr::getExactSDiv(unwrap<Constant>(LHSConstant),
1573 unwrap<Constant>(RHSConstant)));
1577 return wrap(ConstantExpr::getFDiv(unwrap<Constant>(LHSConstant),
1578 unwrap<Constant>(RHSConstant)));
1582 return wrap(ConstantExpr::getURem(unwrap<Constant>(LHSConstant),
1583 unwrap<Constant>(RHSConstant)));
1587 return wrap(ConstantExpr::getSRem(unwrap<Constant>(LHSConstant),
1588 unwrap<Constant>(RHSConstant)));
1592 return wrap(ConstantExpr::getFRem(unwrap<Constant>(LHSConstant),
1593 unwrap<Constant>(RHSConstant)));
1597 return wrap(ConstantExpr::getAnd(unwrap<Constant>(LHSConstant),
1598 unwrap<Constant>(RHSConstant)));
1602 return wrap(ConstantExpr::getOr(unwrap<Constant>(LHSConstant),
1603 unwrap<Constant>(RHSConstant)));
1607 return wrap(ConstantExpr::getXor(unwrap<Constant>(LHSConstant),
1608 unwrap<Constant>(RHSConstant)));
1614 unwrap<Constant>(LHSConstant),
1615 unwrap<Constant>(RHSConstant)));
1621 unwrap<Constant>(LHSConstant),
1622 unwrap<Constant>(RHSConstant)));
1626 return wrap(ConstantExpr::getShl(unwrap<Constant>(LHSConstant),
1627 unwrap<Constant>(RHSConstant)));
1631 return wrap(ConstantExpr::getLShr(unwrap<Constant>(LHSConstant),
1632 unwrap<Constant>(RHSConstant)));
1636 return wrap(ConstantExpr::getAShr(unwrap<Constant>(LHSConstant),
1637 unwrap<Constant>(RHSConstant)));
1642 ArrayRef<Constant *> IdxList(unwrap<Constant>(ConstantIndices, NumIndices),
1642 ArrayRef<Constant *> IdxList(unwrap<Constant>(ConstantIndices, NumIndices),
1644 Constant *Val = unwrap<Constant>(ConstantVal);
1644 Constant *Val = unwrap<Constant>(ConstantVal);
1653 ArrayRef<Constant *> IdxList(unwrap<Constant>(ConstantIndices, NumIndices),
1653 ArrayRef<Constant *> IdxList(unwrap<Constant>(ConstantIndices, NumIndices),
1655 Constant *Val = unwrap<Constant>(ConstantVal);
1655 Constant *Val = unwrap<Constant>(ConstantVal);
1662 return wrap(ConstantExpr::getTrunc(unwrap<Constant>(ConstantVal),
1667 return wrap(ConstantExpr::getSExt(unwrap<Constant>(ConstantVal),
1672 return wrap(ConstantExpr::getZExt(unwrap<Constant>(ConstantVal),
1677 return wrap(ConstantExpr::getFPTrunc(unwrap<Constant>(ConstantVal),
1682 return wrap(ConstantExpr::getFPExtend(unwrap<Constant>(ConstantVal),
1687 return wrap(ConstantExpr::getUIToFP(unwrap<Constant>(ConstantVal),
1692 return wrap(ConstantExpr::getSIToFP(unwrap<Constant>(ConstantVal),
1697 return wrap(ConstantExpr::getFPToUI(unwrap<Constant>(ConstantVal),
1702 return wrap(ConstantExpr::getFPToSI(unwrap<Constant>(ConstantVal),
1707 return wrap(ConstantExpr::getPtrToInt(unwrap<Constant>(ConstantVal),
1712 return wrap(ConstantExpr::getIntToPtr(unwrap<Constant>(ConstantVal),
1717 return wrap(ConstantExpr::getBitCast(unwrap<Constant>(ConstantVal),
1723 return wrap(ConstantExpr::getAddrSpaceCast(unwrap<Constant>(ConstantVal),
1729 return wrap(ConstantExpr::getZExtOrBitCast(unwrap<Constant>(ConstantVal),
1735 return wrap(ConstantExpr::getSExtOrBitCast(unwrap<Constant>(ConstantVal),
1741 return wrap(ConstantExpr::getTruncOrBitCast(unwrap<Constant>(ConstantVal),
1747 return wrap(ConstantExpr::getPointerCast(unwrap<Constant>(ConstantVal),
1753 return wrap(ConstantExpr::getIntegerCast(unwrap<Constant>(ConstantVal),
1758 return wrap(ConstantExpr::getFPCast(unwrap<Constant>(ConstantVal),
1765 return wrap(ConstantExpr::getSelect(unwrap<Constant>(ConstantCondition),
1766 unwrap<Constant>(ConstantIfTrue),
1767 unwrap<Constant>(ConstantIfFalse)));
1772 return wrap(ConstantExpr::getExtractElement(unwrap<Constant>(VectorConstant),
1773 unwrap<Constant>(IndexConstant)));
1779 return wrap(ConstantExpr::getInsertElement(unwrap<Constant>(VectorConstant),
1780 unwrap<Constant>(ElementValueConstant),
1781 unwrap<Constant>(IndexConstant)));
1787 return wrap(ConstantExpr::getShuffleVector(unwrap<Constant>(VectorAConstant),
1788 unwrap<Constant>(VectorBConstant),
1789 unwrap<Constant>(MaskConstant)));
1794 return wrap(ConstantExpr::getExtractValue(unwrap<Constant>(AggConstant),
1801 return wrap(ConstantExpr::getInsertValue(unwrap<Constant>(AggConstant),
1802 unwrap<Constant>(ElementValueConstant),
2131 ->setInitializer(unwrap<Constant>(ConstantVal));
2204 unwrap<Constant>(Aliasee), unwrap(M)));
2249 unwrap<GlobalAlias>(Alias)->setAliasee(unwrap<Constant>(Aliasee));
2309 unwrap<Function>(Fn)->setPersonalityFn(unwrap<Constant>(PersonalityFn));
2504 unwrap<Constant>(Resolver), unwrap(M)));
2549 unwrap<GlobalIFunc>(IFunc)->setResolver(unwrap<Constant>(Resolver));
3155 ParentPad = wrap(Constant::getNullValue(Ty));
3171 ParentPad = wrap(Constant::getNullValue(Ty));
3212 addClause(cast<Constant>(unwrap(ClauseVal)));
3423 Constant* AllocSize = ConstantExpr::getSizeOf(unwrap(Ty));
3434 Constant* AllocSize = ConstantExpr::getSizeOf(unwrap(Ty));
lib/IR/DIBuilder.cpp 344 static ConstantAsMetadata *getConstantOrNull(Constant *C) {
353 Constant *Discriminant, DINode::DIFlags Flags, DIType *Ty) {
376 DINode::DIFlags Flags, llvm::Constant *Val,
421 DIType *Ty, Constant *Val) {
lib/IR/DebugInfo.cpp 1069 map_from_llvmDIFlags(Flags), unwrap<Constant>(ConstantVal),
lib/IR/DiagnosticInfo.cpp 176 else if (isa<Constant>(V)) {
lib/IR/Function.cpp 1465 Constant *Function::getPersonalityFn() const {
1467 return cast<Constant>(Op<0>());
1470 void Function::setPersonalityFn(Constant *Fn) {
1475 Constant *Function::getPrefixData() const {
1477 return cast<Constant>(Op<1>());
1480 void Function::setPrefixData(Constant *PrefixData) {
1485 Constant *Function::getPrologueData() const {
1487 return cast<Constant>(Op<2>());
1490 void Function::setPrologueData(Constant *PrologueData) {
1511 void Function::setHungoffOperand(Constant *C) {
lib/IR/Globals.cpp 37 sizeof(Constant) + 2 * sizeof(void *) + 2 * sizeof(unsigned),
337 Constant *InitVal, const Twine &Name,
356 LinkageTypes Link, Constant *InitVal,
388 void GlobalVariable::setInitializer(Constant *InitVal) {
429 Constant *Symbol)
435 findBaseObject(const Constant *C, DenseSet<const GlobalAlias *> &Aliases) {
477 const Twine &Name, Constant *Aliasee,
487 Constant *Aliasee, Module *ParentModule) {
522 void GlobalAlias::setAliasee(Constant *Aliasee) {
533 const Twine &Name, Constant *Resolver,
543 Constant *Resolver, Module *ParentModule) {
lib/IR/IRBuilder.cpp 45 Constant *StrConstant = ConstantDataArray::getString(Context, Str);
531 Mask = Constant::getAllOnesValue(VectorType::get(Type::getInt1Ty(Context),
567 Mask = Constant::getAllOnesValue(VectorType::get(Type::getInt1Ty(Context),
lib/IR/Instructions.cpp 247 void LandingPadInst::addClause(Constant *Val) {
268 if (isa<Function>(V) || isa<Constant>(V))
549 } else if (Constant *CO = dyn_cast<Constant>(ArraySize)) {
549 } else if (Constant *CO = dyn_cast<Constant>(ArraySize)) {
550 Constant *Scale = ConstantExpr::getIntegerCast(CO, IntPtrTy,
553 AllocSize = ConstantExpr::getMul(Scale, cast<Constant>(AllocSize));
1653 ArrayRef<Constant *> IdxList) {
1827 SmallVector<Constant*, 16> NewMask(NumMaskElts);
1890 int ShuffleVectorInst::getMaskValue(const Constant *Mask, unsigned i) {
1894 Constant *C = Mask->getAggregateElement(i);
1900 void ShuffleVectorInst::getShuffleMask(const Constant *Mask,
1910 Constant *C = Mask->getAggregateElement(i);
2410 Constant *C = Constant::getAllOnesValue(Op->getType());
2410 Constant *C = Constant::getAllOnesValue(Op->getType());
2417 Constant *AllOnes = Constant::getAllOnesValue(Op->getType());
2417 Constant *AllOnes = Constant::getAllOnesValue(Op->getType());
lib/IR/MDBuilder.cpp 24 ConstantAsMetadata *MDBuilder::createConstant(Constant *C) {
91 MDNode *MDBuilder::createRange(Constant *Lo, Constant *Hi) {
91 MDNode *MDBuilder::createRange(Constant *Lo, Constant *Hi) {
184 Constant *Flags = ConstantInt::get(Type::getInt64Ty(Context), 1);
lib/IR/Metadata.cpp 358 if (auto *C = dyn_cast<Constant>(V))
358 if (auto *C = dyn_cast<Constant>(V))
414 if (auto *C = dyn_cast<Constant>(To)) {
414 if (auto *C = dyn_cast<Constant>(To)) {
427 } else if (!isa<Constant>(To)) {
lib/IR/Module.cpp 204 Constant *Module::getOrInsertGlobal(
225 Constant *Module::getOrInsertGlobal(StringRef Name, Type *Ty) {
346 Constant *Val) {
lib/IR/SafepointIRVerifier.cpp 142 if (!BI || !BI->isConditional() || !isa<Constant>(BI->getCondition()))
361 if (isa<Constant>(V)) {
364 if (V != Constant::getNullValue(V->getType()))
lib/IR/Type.cpp 539 (unsigned)cast<Constant>(V)->getUniqueInteger().getZExtValue();
562 const Constant *C = dyn_cast<Constant>(V);
562 const Constant *C = dyn_cast<Constant>(V);
lib/IR/TypeFinder.cpp 129 if (!isa<Constant>(V) || isa<GlobalValue>(V)) return;
lib/IR/Value.cpp 365 Constant *C) {
385 auto *C = dyn_cast<Constant>(V);
385 auto *C = dyn_cast<Constant>(V);
415 if (auto *C = dyn_cast<Constant>(U.getUser())) {
415 if (auto *C = dyn_cast<Constant>(U.getUser())) {
lib/IR/Verifier.cpp 295 SmallPtrSet<const Constant *, 32> ConstantExprVisited;
402 void visitAliaseeSubExpr(const GlobalAlias &A, const Constant &C);
404 const GlobalAlias &A, const Constant &C);
509 void visitConstantExprsRecursively(const Constant *EntryC);
672 const Constant *Init = GV.getInitializer();
716 void Verifier::visitAliaseeSubExpr(const GlobalAlias &GA, const Constant &C) {
723 const GlobalAlias &GA, const Constant &C) {
747 else if (const auto *C2 = dyn_cast<Constant>(V))
747 else if (const auto *C2 = dyn_cast<Constant>(V))
757 const Constant *Aliasee = GA.getAliasee();
1877 void Verifier::visitConstantExprsRecursively(const Constant *EntryC) {
1881 SmallVector<const Constant *, 16> Stack;
1885 const Constant *C = Stack.pop_back_val();
1901 const auto *OpC = dyn_cast<Constant>(U);
1901 const auto *OpC = dyn_cast<Constant>(U);
3686 Constant *Clause = LPI.getClause(i);
4294 Constant *Init = GV->getInitializer();
lib/LTO/LTOModule.cpp 247 LTOModule::objcClassNameFromExpression(const Constant *c, std::string &name) {
249 Constant *op = ce->getOperand(0);
251 Constant *cn = gvn->getInitializer();
lib/Linker/IRMover.cpp 474 Expected<Constant *> linkAppendingVarProto(GlobalVariable *DstGV,
483 Expected<Constant *> linkGlobalValueProto(GlobalValue *GV,
578 Expected<Constant *> NewProto = linkGlobalValueProto(SGV, ForIndirectSymbol);
830 static void getArrayElements(const Constant *C,
831 SmallVectorImpl<Constant *> &Dest) {
839 Expected<Constant *>
900 SmallVector<Constant *, 16> SrcElements;
926 Constant *Ret = ConstantExpr::getBitCast(NG, TypeMap.get(SrcGV->getType()));
962 Expected<Constant *> IRLinker::linkGlobalValueProto(GlobalValue *SGV,
972 return cast<Constant>(I->second);
976 return cast<Constant>(I->second);
1023 Constant *C = NewGV;
lib/ProfileData/InstrProf.cpp 319 auto *Value =
1141 Constant::getIntegerValue(IntTy64, APInt(64, ProfileVersion)), VarName);
1154 Constant *ProfileNameConst =
lib/Target/AArch64/AArch64FastISel.cpp 289 unsigned fastMaterializeConstant(const Constant *C) override;
441 unsigned CPI = MCP.getConstantPoolIndex(cast<Constant>(CFP), Align);
522 unsigned AArch64FastISel::fastMaterializeConstant(const Constant *C) {
1187 if (UseAdd && isa<Constant>(LHS) && !isa<Constant>(RHS))
1187 if (UseAdd && isa<Constant>(LHS) && !isa<Constant>(RHS))
1221 } else if (const auto *C = dyn_cast<Constant>(RHS))
1221 } else if (const auto *C = dyn_cast<Constant>(RHS))
2332 if (isa<Constant>(LHS) && cast<Constant>(LHS)->isNullValue())
2332 if (isa<Constant>(LHS) && cast<Constant>(LHS)->isNullValue())
2335 if (!isa<Constant>(RHS) || !cast<Constant>(RHS)->isNullValue())
2335 if (!isa<Constant>(RHS) || !cast<Constant>(RHS)->isNullValue())
2361 if (!isa<Constant>(RHS) || !cast<Constant>(RHS)->isNullValue())
2361 if (!isa<Constant>(RHS) || !cast<Constant>(RHS)->isNullValue())
lib/Target/AArch64/AArch64ISelLowering.cpp 8637 Constant *M1, *M2;
lib/Target/AArch64/AArch64ISelLowering.h 452 getExceptionPointerRegister(const Constant *PersonalityFn) const override {
460 getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
lib/Target/AArch64/AArch64InstructionSelector.cpp 133 unsigned emitConstantPoolEntry(Constant *CPVal, MachineFunction &MF) const;
134 MachineInstr *emitLoadFromConstantPool(Constant *CPVal,
3065 AArch64InstructionSelector::emitConstantPoolEntry(Constant *CPVal,
3077 Constant *CPVal, MachineIRBuilder &MIRBuilder) const {
3606 const Constant *Mask = I.getOperand(3).getShuffleMask();
3656 const Constant *ShuffleMask = I.getOperand(3).getShuffleMask();
3675 SmallVector<Constant *, 64> CstIdxs;
3689 Constant *CPVal = ConstantVector::get(CstIdxs);
lib/Target/AArch64/AArch64PromoteConstant.cpp 99 using PromotionCacheTy = SmallDenseMap<Constant *, PromotedConstant, 16>;
102 Constant *C;
106 UpdateRecord(Constant *C, Instruction *User, unsigned Op)
257 static bool shouldConvertUse(const Constant *Cst, const Instruction *Instr,
323 static bool shouldConvertImpl(const Constant *Cst) {
347 shouldConvert(Constant &C,
468 static void ensurePromotedGV(Function &F, Constant &C,
528 Constant *C = First->C;
550 Constant *Cst = dyn_cast<Constant>(U);
550 Constant *Cst = dyn_cast<Constant>(U);
lib/Target/AArch64/AArch64StackTagging.cpp 203 Value *Store1 = I1 == Out.end() ? Constant::getNullValue(IRB.getInt64Ty())
205 Value *Store2 = I2 == Out.end() ? Constant::getNullValue(IRB.getInt64Ty())
456 IRB.CreateCall(IRG_SP, {Constant::getNullValue(IRB.getInt64Ty())});
624 IRB.CreateCall(TagP, {Constant::getNullValue(Info.AI->getType()), Base,
lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp 73 const Constant *EntryC,
74 SmallPtrSet<const Constant *, 8> &ConstantExprVisited);
106 const Constant *EntryC,
107 SmallPtrSet<const Constant *, 8> &ConstantExprVisited) {
112 SmallVector<const Constant *, 16> Stack;
116 const Constant *C = Stack.pop_back_val();
126 const auto *OpC = dyn_cast<Constant>(U);
126 const auto *OpC = dyn_cast<Constant>(U);
268 SmallPtrSet<const Constant *, 8> ConstantExprVisited;
315 const auto *OpC = dyn_cast<Constant>(U);
315 const auto *OpC = dyn_cast<Constant>(U);
lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp 143 Value *Idx = Constant::getIntegerValue(
lib/Target/AMDGPU/AMDGPUAsmPrinter.h 116 const MCExpr *lowerConstant(const Constant *CV) override;
lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp 750 if (isa<Constant>(Den))
798 Constant *UINT_MAX_PLUS_1 = ConstantFP::get(F32Ty, BitsToFloat(0x4f800000));
lib/Target/AMDGPU/AMDGPUInstrInfo.cpp 39 isa<Constant>(Ptr) || isa<GlobalValue>(Ptr))
lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp 1520 isa<Constant>(Ptr) || isa<GlobalValue>(Ptr))
lib/Target/AMDGPU/AMDGPULibCalls.cpp 105 double& Res1, Constant *copr0, Constant *copr1, Constant *copr2);
105 double& Res1, Constant *copr0, Constant *copr1, Constant *copr2);
105 double& Res1, Constant *copr0, Constant *copr1, Constant *copr2);
766 Constant *nval;
910 Constant *cnval = ConstantFP::get(eltType, 1.0);
934 Constant *cnval = ConstantFP::get(eltType, 1.0);
981 Constant *cnval;
1025 Constant *cnval = nullptr;
1429 Constant *copr0, Constant *copr1,
1429 Constant *copr0, Constant *copr1,
1430 Constant *copr2) {
1627 Constant *copr0 = nullptr;
1628 Constant *copr1 = nullptr;
1629 Constant *copr2 = nullptr;
1631 if ((copr0 = dyn_cast<Constant>(aCI->getArgOperand(0))) == nullptr)
1636 if ((copr1 = dyn_cast<Constant>(aCI->getArgOperand(1))) == nullptr) {
1643 if ((copr2 = dyn_cast<Constant>(aCI->getArgOperand(2))) == nullptr)
1662 Constant *celt0 = CDV0 ? CDV0->getElementAsConstant(i) : nullptr;
1663 Constant *celt1 = CDV1 ? CDV1->getElementAsConstant(i) : nullptr;
1664 Constant *celt2 = CDV2 ? CDV2->getElementAsConstant(i) : nullptr;
1673 Constant *nval0, *nval1;
lib/Target/AMDGPU/AMDGPUMCInstLower.cpp 228 const Constant *CV,
251 const MCExpr *AMDGPUAsmPrinter::lowerConstant(const Constant *CV) {
409 const MCExpr *R600AsmPrinter::lowerConstant(const Constant *CV) {
lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp 99 if (!isa<Constant>(U))
123 /*Initializer=*/Constant::getNullValue(T), RuntimeHandle,
135 auto *NewPtr = ConstantExpr::getPointerCast(GV, BitCast->getType());
lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp 254 Constant *Init = GV->getInitializer();
440 Constant *Init = GV->getInitializer();
487 Constant *Indices[4] = {
490 Constant *Mask = ConstantVector::get(Indices);
lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp 820 Constant::getNullValue(Type::getInt32Ty(Mod->getContext())),
lib/Target/AMDGPU/R600AsmPrinter.h 33 const MCExpr *lowerConstant(const Constant *CV) override;
lib/Target/AMDGPU/R600ISelLowering.cpp 1469 if (isa<Constant>(LoadNode->getMemOperand()->getValue()) ||
lib/Target/AMDGPU/SIAnnotateControlFlow.cpp 66 Constant *IntMaskZero;
245 if (isa<Constant>(Cond)) {
lib/Target/ARM/ARMAsmPrinter.cpp 79 void ARMAsmPrinter::EmitXXStructor(const DataLayout &DL, const Constant *CV) {
lib/Target/ARM/ARMAsmPrinter.h 100 void EmitXXStructor(const DataLayout &DL, const Constant *CV) override;
lib/Target/ARM/ARMBaseRegisterInfo.cpp 465 const Constant *C =
lib/Target/ARM/ARMCodeGenPrepare.cpp 562 Constant *NewConst = ConstantExpr::getZExt(Const, ExtTy);
841 } else if (isa<Constant>(V) && !isa<ConstantExpr>(V)) {
883 if (isa<Constant>(Op)) {
lib/Target/ARM/ARMConstantPoolValue.cpp 121 const Constant *C,
130 ARMConstantPoolConstant::ARMConstantPoolConstant(const Constant *C,
141 const Constant *C)
148 ARMConstantPoolConstant::Create(const Constant *C, unsigned ID) {
155 const Constant *Initializer) {
168 ARMConstantPoolConstant::Create(const Constant *C, unsigned ID,
175 ARMConstantPoolConstant::Create(const Constant *C, unsigned ID,
lib/Target/ARM/ARMConstantPoolValue.h 144 const Constant *CVal; // Constant being loaded.
147 ARMConstantPoolConstant(const Constant *C,
153 ARMConstantPoolConstant(Type *Ty, const Constant *C,
159 ARMConstantPoolConstant(const GlobalVariable *GV, const Constant *Init);
162 static ARMConstantPoolConstant *Create(const Constant *C, unsigned ID);
166 const Constant *Initializer);
167 static ARMConstantPoolConstant *Create(const Constant *C, unsigned ID,
170 static ARMConstantPoolConstant *Create(const Constant *C, unsigned ID,
185 const Constant *getPromotedGlobalInit() const {
lib/Target/ARM/ARMFastISel.cpp 157 unsigned fastMaterializeConstant(const Constant *C) override;
207 unsigned ARMMaterializeInt(const Constant *C, MVT VT);
452 unsigned Idx = MCP.getConstantPoolIndex(cast<Constant>(CFP), Align);
464 unsigned ARMFastISel::ARMMaterializeInt(const Constant *C, MVT VT) {
642 unsigned ARMFastISel::fastMaterializeConstant(const Constant *C) {
1488 Constant *Zero = ConstantInt::get(Type::getInt32Ty(*Context), 0);
lib/Target/ARM/ARMISelLowering.cpp 9643 const Constant *C = ConstantInt::get(Int32Ty, NumLPads);
9744 const Constant *C = ConstantInt::get(Int32Ty, NumLPads);
10146 const Constant *C = ConstantInt::get(Int32Ty, LoopSize);
16425 Constant *CDomain = Builder.getInt32(Domain);
17076 const Constant *PersonalityFn) const {
17083 const Constant *PersonalityFn) const {
lib/Target/ARM/ARMISelLowering.h 531 getExceptionPointerRegister(const Constant *PersonalityFn) const override;
536 getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
lib/Target/ARM/ARMTargetTransformInfo.h 210 bool shouldBuildLookupTablesForConstant(Constant *C) const {
lib/Target/ARM/MVETailPredication.cpp 239 Constant *Const = nullptr;
lib/Target/ARM/ThumbRegisterInfo.cpp 71 const Constant *C = ConstantInt::get(
90 const Constant *C = ConstantInt::get(
lib/Target/BPF/BPFAbstractMemberAccess.cpp 288 Constant *Zero =
lib/Target/BPF/BPFISelDAGToDAG.cpp 83 bool fillGenericConstant(const DataLayout &DL, const Constant *CV,
347 const Constant *Init = V->getInitializer();
391 const Constant *CV,
457 const Constant *Field = CS->getOperand(i);
lib/Target/Hexagon/HexagonCommonGEP.cpp 838 if (isa<Constant>(Val) || isa<Argument>(Val))
lib/Target/Hexagon/HexagonConstPropagation.cpp 77 static uint32_t deduce(const Constant *C);
122 const Constant *Value;
123 const Constant *Values[MaxCellSize];
132 bool add(const Constant *C);
141 : L.Size*sizeof(const Constant*);
350 bool constToInt(const Constant *C, APInt &Val) const;
351 bool constToFloat(const Constant *C, APFloat &Val) const;
421 uint32_t ConstantProperties::deduce(const Constant *C) {
500 const Constant *C = Values[i];
528 const Constant *LC = L.Values[i];
539 bool LatticeCell::add(const Constant *LC) {
549 const Constant *C = Values[Index];
1084 bool MachineConstEvaluator::constToInt(const Constant *C,
1416 const Constant *C = intToConst(ResA);
1483 const Constant *C = intToConst(ResA);
1532 const Constant *C = intToConst(A2);
1545 const Constant *C = intToConst(XA);
1572 const Constant *C = intToConst(XA);
1603 const Constant *C = intToConst(XA);
1668 const Constant *C = intToConst(CA);
1703 const Constant *C = intToConst(CA);
1736 const Constant *C = intToConst(APInt(Width, 0, false));
1749 const Constant *C = intToConst(CA);
1797 const Constant *C = intToConst(SA);
2095 const Constant *CI = T.Values[i];
2127 const Constant *CI = T.Values[i];
2231 const Constant *C = Input.Values[i];
2535 const Constant *C = intToConst(HV | LV);
2691 const Constant *C = intToConst(A);
lib/Target/Hexagon/HexagonISelLowering.cpp 892 static Constant *convert_i1_to_i8(const Constant *ConstVal) {
892 static Constant *convert_i1_to_i8(const Constant *ConstVal) {
893 SmallVector<Constant *, 128> NewConst;
920 Constant *CVal = nullptr;
922 if (const Constant *ConstVal = dyn_cast<Constant>(CPN->getConstVal())) {
922 if (const Constant *ConstVal = dyn_cast<Constant>(CPN->getConstVal())) {
lib/Target/Hexagon/HexagonISelLowering.h 238 getExceptionPointerRegister(const Constant *PersonalityFn) const override {
245 getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
lib/Target/Hexagon/HexagonISelLoweringHVX.cpp 395 ArrayRef<Constant*> Tmp((Constant**)Consts.begin(),
397 Constant *CV = ConstantVector::get(Tmp);
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp 1535 auto *BMI = ConstantInt::get(P->getType(), APInt::getLowBitsSet(32, IC));
lib/Target/Hexagon/RDFGraph.cpp 751 const Constant *PF = F.hasPersonalityFn() ? F.getPersonalityFn()
lib/Target/Lanai/LanaiISelLowering.cpp 1129 const Constant *C = N->getConstVal();
lib/Target/Lanai/LanaiTargetObjectFile.cpp 116 const Constant *CN) const {
122 const Constant *C,
lib/Target/Lanai/LanaiTargetObjectFile.h 37 bool isConstantInSmallSection(const DataLayout &DL, const Constant *CN) const;
40 const Constant *C,
lib/Target/MSP430/MSP430ISelDAGToDAG.cpp 49 const Constant *CP;
lib/Target/Mips/MipsConstantIslandPass.cpp 1658 const Constant *C = ConstantInt::get(Int32Ty, V);
lib/Target/Mips/MipsFastISel.cpp 206 unsigned materializeInt(const Constant *C, MVT VT);
266 unsigned fastMaterializeConstant(const Constant *C) override;
356 unsigned MipsFastISel::materializeInt(const Constant *C, MVT VT) {
447 unsigned MipsFastISel::fastMaterializeConstant(const Constant *C) {
lib/Target/Mips/MipsISelLowering.h 357 getExceptionPointerRegister(const Constant *PersonalityFn) const override {
364 getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
lib/Target/Mips/MipsTargetObjectFile.cpp 169 const DataLayout &DL, const Constant *CN, const TargetMachine &TM) const {
179 const Constant *C,
lib/Target/Mips/MipsTargetObjectFile.h 38 bool IsConstantInSmallSection(const DataLayout &DL, const Constant *CN,
42 const Constant *C,
lib/Target/NVPTX/NVPTXAsmPrinter.cpp 616 static bool usedInGlobalVarDef(const Constant *C) {
625 if (const Constant *C = dyn_cast<Constant>(U))
625 if (const Constant *C = dyn_cast<Constant>(U))
681 static bool useFuncSeen(const Constant *C,
684 if (const Constant *cu = dyn_cast<Constant>(U)) {
684 if (const Constant *cu = dyn_cast<Constant>(U)) {
720 if (const Constant *C = dyn_cast<Constant>(U)) {
720 if (const Constant *C = dyn_cast<Constant>(U)) {
1048 const Constant *Initializer = nullptr;
1158 const Constant *Initializer = GVar->getInitializer();
1194 const Constant *Initializer = GVar->getInitializer();
1711 void NVPTXAsmPrinter::printScalarConstant(const Constant *CPV, raw_ostream &O) {
1786 void NVPTXAsmPrinter::bufferLEByte(const Constant *CPV, int Bytes,
1914 void NVPTXAsmPrinter::bufferAggregateConstant(const Constant *CPV,
1934 bufferLEByte(cast<Constant>(CPV->getOperand(i)), 0, aggBuffer);
1942 bufferLEByte(cast<Constant>(CDS->getElementAsConstant(i)), 0,
1958 bufferLEByte(cast<Constant>(CPV->getOperand(i)), Bytes, aggBuffer);
1971 NVPTXAsmPrinter::lowerConstantForGV(const Constant *CV, bool ProcessingGeneric) {
2000 if (Constant *C = ConstantFoldConstant(CE, getDataLayout()))
2018 return lowerConstantForGV(cast<const Constant>(CE->getOperand(0)), true);
2059 Constant *Op = CE->getOperand(0);
2070 Constant *Op = CE->getOperand(0);
lib/Target/NVPTX/NVPTXAsmPrinter.h 177 AP.lowerConstantForGV(cast<Constant>(CExpr), false);
236 const MCExpr *lowerConstantForGV(const Constant *CV, bool ProcessingGeneric);
261 void printScalarConstant(const Constant *CPV, raw_ostream &O);
263 void bufferLEByte(const Constant *CPV, int Bytes, AggBuffer *aggBuffer);
264 void bufferAggregateConstant(const Constant *CV, AggBuffer *aggBuffer);
lib/Target/NVPTX/NVPTXGenericToNVVM.cpp 47 Value *remapConstant(Module *M, Function *F, Constant *C,
50 Constant *C,
56 typedef ValueMap<Constant *, Value *> ConstantToValueMapTy;
113 if (isa<Constant>(Operand)) {
115 i, remapConstant(&M, &*I, cast<Constant>(Operand), Builder));
142 Constant *BitCastNewGV = ConstantExpr::getPointerCast(NewGV, GV->getType());
156 Value *GenericToNVVM::remapConstant(Module *M, Function *F, Constant *C,
196 Module *M, Function *F, Constant *C, IRBuilder<> &Builder) {
205 Value *NewOperand = remapConstant(M, F, cast<Constant>(Operand), Builder);
244 Value *NewOperand = remapConstant(M, F, cast<Constant>(Operand), Builder);
lib/Target/NVPTX/NVPTXISelLowering.cpp 2589 Value *srcValue = Constant::getNullValue(PointerType::get(
lib/Target/NVPTX/NVPTXTargetObjectFile.h 29 const Constant *C,
lib/Target/NVPTX/NVVMReflect.cpp 142 const Value *Operand = cast<Constant>(Sym)->getOperand(0);
148 const Constant *Initializer = GV->getInitializer();
lib/Target/PowerPC/PPCBoolRetToInt.cpp 96 if (auto *C = dyn_cast<Constant>(V))
96 if (auto *C = dyn_cast<Constant>(V))
101 Value *Zero = Constant::getNullValue(IntTy);
145 return isa<Constant>(V) || isa<Argument>(V) || isa<CallInst>(V) ||
230 if (!isa<PHINode>(V) && !isa<Constant>(V) &&
lib/Target/PowerPC/PPCFastISel.cpp 108 unsigned fastMaterializeConstant(const Constant *C) override;
2001 unsigned Idx = MCP.getConstantPoolIndex(cast<Constant>(CFP), Align);
2241 unsigned PPCFastISel::fastMaterializeConstant(const Constant *C) {
lib/Target/PowerPC/PPCISelDAGToDAG.cpp 6562 const Constant *C = CP->getConstVal();
lib/Target/PowerPC/PPCISelLowering.cpp 2709 const Constant *C = CP->getConstVal();
8291 Constant *One =
8293 Constant *NegOne =
8296 Constant *CV[4];
8306 Constant *CP = ConstantVector::get(CV);
14979 const Constant *PersonalityFn) const {
14984 const Constant *PersonalityFn) const {
lib/Target/PowerPC/PPCISelLowering.h 937 getExceptionPointerRegister(const Constant *PersonalityFn) const override;
942 getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
lib/Target/PowerPC/PPCTargetTransformInfo.cpp 241 if (const auto *CV = dyn_cast<Constant>(MemAddr))
241 if (const auto *CV = dyn_cast<Constant>(MemAddr))
lib/Target/RISCV/RISCVISelLowering.cpp 2879 const Constant *PersonalityFn) const {
2884 const Constant *PersonalityFn) const {
lib/Target/RISCV/RISCVISelLowering.h 141 getExceptionPointerRegister(const Constant *PersonalityFn) const override;
146 getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
lib/Target/RISCV/RISCVTargetObjectFile.cpp 102 const DataLayout &DL, const Constant *CN) const {
107 const DataLayout &DL, SectionKind Kind, const Constant *C,
lib/Target/RISCV/RISCVTargetObjectFile.h 35 bool isConstantInSmallSection(const DataLayout &DL, const Constant *CN) const;
38 const Constant *C,
lib/Target/Sparc/SparcISelLowering.h 107 getExceptionPointerRegister(const Constant *PersonalityFn) const override {
114 getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
lib/Target/SystemZ/SystemZISelLowering.h 458 getExceptionPointerRegister(const Constant *PersonalityFn) const override {
465 getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
lib/Target/SystemZ/SystemZTargetTransformInfo.cpp 382 if (const Constant *C = dyn_cast<Constant>(Args[1])) {
382 if (const Constant *C = dyn_cast<Constant>(Args[1])) {
lib/Target/TargetLoweringObjectFile.cpp 57 static bool isNullOrUndef(const Constant *C) {
64 if (!isNullOrUndef(cast<Constant>(Operand)))
71 const Constant *C = GV->getInitializer();
93 static bool IsNullTerminatedString(const Constant *C) {
182 const Constant *C = GVar->getInitializer();
297 const DataLayout &DL, SectionKind Kind, const Constant *C,
lib/Target/WebAssembly/WebAssemblyFastISel.cpp 175 unsigned fastMaterializeConstant(const Constant *C) override;
615 unsigned WebAssemblyFastISel::fastMaterializeConstant(const Constant *C) {
lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp 69 SmallPtrSetImpl<Constant *> &ConstantBCs) {
84 if (isa<Constant>(U.get())) {
86 auto C = ConstantBCs.insert(cast<Constant>(U.get()));
243 SmallPtrSet<Constant *, 2> ConstantBCs;
296 if (isa<Constant>(U->get()))
lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp 840 Constant *Clause = LPI->getClause(I);
lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp 81 std::map<uint16_t, MapVector<Constant *, std::vector<Constant *>>> DtorFuncs;
81 std::map<uint16_t, MapVector<Constant *, std::vector<Constant *>>> DtorFuncs;
92 Constant *DtorFunc = CS->getOperand(1);
96 Constant *Associated = CS->getOperand(2);
97 Associated = cast<Constant>(Associated->stripPointerCasts());
119 Constant *DsoHandle = M.getNamedValue("__dso_handle");
135 Constant *Associated = AssociatedAndMore.first;
169 Constant::getNullValue(Res->getType()));
lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp 64 if (isa<Constant>(Arg))
lib/Target/WebAssembly/WebAssemblyRegStackify.cpp 114 auto *Val = cast<ConstantFP>(Constant::getNullValue(
119 auto *Val = cast<ConstantFP>(Constant::getNullValue(
145 const Constant *GV = MO.getGlobal();
lib/Target/X86/X86FastISel.cpp 151 unsigned fastMaterializeConstant(const Constant *C) override;
661 Val = Constant::getNullValue(DL.getIntPtrType(Val->getContext()));
1399 Op1 = Constant::getNullValue(DL.getIntPtrType(Op0->getContext()));
3847 unsigned X86FastISel::fastMaterializeConstant(const Constant *C) {
lib/Target/X86/X86ISelDAGToDAG.cpp 69 const Constant *CP;
lib/Target/X86/X86ISelLowering.cpp 2291 static Constant* SegmentOffset(IRBuilder<> &IRB,
5926 static const Constant *getTargetConstantFromNode(LoadSDNode *Load) {
5942 static const Constant *getTargetConstantFromNode(SDValue Op) {
5947 const Constant *
6155 if (const Constant *C = CNode->getConstVal()) {
8070 static Constant *getConstantVector(MVT VT, const APInt &SplatValue,
8075 SmallVector<Constant *, 32> ConstantVec;
8078 Constant *Const;
8087 Const = Constant::getIntegerValue(Type::getIntNTy(C, ScalarSize), Val);
8227 Constant *C = Constant::getIntegerValue(ScalarTy, SplatValue);
8227 Constant *C = Constant::getIntegerValue(ScalarTy, SplatValue);
8246 Constant *C =
8266 Constant *VecC = getConstantVector(VT, SplatValue, SplatBitSize,
8327 const Constant *C = nullptr;
9651 SmallVector<Constant *, 16> ConstVecOps(NumElems, UndefValue::get(EltType));
9667 Constant *CV = ConstantVector::get(ConstVecOps);
18033 Value *Ptr = Constant::getNullValue(Type::getInt8PtrTy(*DAG.getContext(),
18175 Value *Ptr = Constant::getNullValue(Subtarget.is64Bit()
18561 Constant *C0 = ConstantDataVector::get(*Context, CV0);
18565 SmallVector<Constant*,2> CV1;
18572 Constant *C1 = ConstantVector::get(CV1);
24290 const Constant *PersonalityFn) const {
24298 const Constant *PersonalityFn) const {
30182 const Constant *PerFn = MF->getFunction().getPersonalityFn();
38986 Constant *Init = GV->getInitializer();
lib/Target/X86/X86ISelLowering.h 944 const Constant *getTargetConstantFromLoad(LoadSDNode *LD) const override;
1174 getExceptionPointerRegister(const Constant *PersonalityFn) const override;
1179 getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
lib/Target/X86/X86InstrInfo.cpp 5338 const Constant *C = IsAllOnes ? Constant::getAllOnesValue(Ty) :
5338 const Constant *C = IsAllOnes ? Constant::getAllOnesValue(Ty) :
5339 Constant::getNullValue(Ty);
lib/Target/X86/X86MCInstLower.cpp 1604 static const Constant *getConstantFromPool(const MachineInstr &MI,
1618 const Constant *C = ConstantEntry.Val.ConstVal;
1731 static void printConstant(const Constant *COp, raw_ostream &CS) {
lib/Target/X86/X86ShuffleDecodeConstantPool.cpp 24 static bool extractConstantMask(const Constant *C, unsigned MaskEltSizeInBits,
60 Constant *COp = C->getAggregateElement(i);
80 Constant *COp = C->getAggregateElement(i);
114 void DecodePSHUFBMask(const Constant *C, unsigned Width,
152 void DecodeVPERMILPMask(const Constant *C, unsigned ElSize, unsigned Width,
187 void DecodeVPERMIL2PMask(const Constant *C, unsigned M2Z, unsigned ElSize,
243 void DecodeVPPERMMask(const Constant *C, unsigned Width,
295 void DecodeVPERMVMask(const Constant *C, unsigned ElSize, unsigned Width,
321 void DecodeVPERMV3Mask(const Constant *C, unsigned ElSize, unsigned Width,
lib/Target/X86/X86ShuffleDecodeConstantPool.h 28 void DecodePSHUFBMask(const Constant *C, unsigned Width,
32 void DecodeVPERMILPMask(const Constant *C, unsigned ElSize, unsigned Width,
36 void DecodeVPERMIL2PMask(const Constant *C, unsigned MatchImm, unsigned ElSize,
41 void DecodeVPPERMMask(const Constant *C, unsigned Width,
45 void DecodeVPERMVMask(const Constant *C, unsigned ElSize, unsigned Width,
49 void DecodeVPERMV3Mask(const Constant *C, unsigned ElSize, unsigned Width,
lib/Target/X86/X86TargetTransformInfo.cpp 3099 if (!all_of(GEP->indices(), [](Value *V) { return isa<Constant>(V); }))
3130 if (isa<Constant>(GEP->getOperand(i)))
lib/Target/X86/X86WinEHState.cpp 96 Constant *Cookie = nullptr;
434 Constant *FSZero =
435 Constant::getNullValue(LinkTy->getPointerTo()->getPointerTo(257));
453 Constant *FSZero =
454 Constant::getNullValue(LinkTy->getPointerTo()->getPointerTo(257));
lib/Target/XCore/XCoreAsmPrinter.cpp 117 const Constant *C = GV->getInitializer();
lib/Target/XCore/XCoreFrameLowering.cpp 162 const Constant *PersonalityFn,
327 const Constant *PersonalityFn =
362 const Constant *PersonalityFn =
lib/Target/XCore/XCoreISelLowering.cpp 298 Constant *GA = ConstantExpr::getBitCast(const_cast<GlobalValue*>(GV), Ty);
300 Constant *Idx = ConstantInt::get(Ty, Offset);
301 Constant *GAI = ConstantExpr::getGetElementPtr(
lib/Target/XCore/XCoreISelLowering.h 131 getExceptionPointerRegister(const Constant *PersonalityFn) const override {
138 getExceptionSelectorRegister(const Constant *PersonalityFn) const override {
lib/Target/XCore/XCoreInstrInfo.cpp 444 const Constant *C = ConstantInt::get(
lib/Target/XCore/XCoreLowerThreadLocal.cpp 67 static Constant *
68 createLoweredInitializer(ArrayType *NewType, Constant *OriginalInitializer) {
69 SmallVector<Constant *, 8> Elements(MaxThreads);
191 Constant *NewInitializer = nullptr;
lib/Target/XCore/XCoreTargetObjectFile.cpp 145 const Constant *C,
lib/Target/XCore/XCoreTargetObjectFile.h 34 const Constant *C,
lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp 244 Constant *Mask = ConstantInt::get(I.getType(), MOps.Mask);
lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp 75 if (isa<Constant>(Curr)) {
147 if (isa<Constant>(Src))
156 if (isa<Constant>(Curr)) {
286 if (auto *C = dyn_cast<Constant>(V)) {
286 if (auto *C = dyn_cast<Constant>(V)) {
289 if (Constant *FoldedC = ConstantFoldConstant(C, DL, &TLI))
lib/Transforms/CFGuard/CFGuard.cpp 153 Constant *GuardFnGlobal = nullptr;
lib/Transforms/Coroutines/CoroEarly.cpp 29 Constant *NoopCoro = nullptr;
130 Constant* Values[] = {NoopFn, NoopFn};
131 Constant* NoopCoroConst = ConstantStruct::get(FrameTy, Values);
lib/Transforms/Coroutines/CoroElide.cpp 45 static void replaceWithConstant(Constant *Value,
232 auto *ResumeAddrConstant =
239 auto *DestroyAddrConstant = ConstantExpr::getExtractValue(
lib/Transforms/Coroutines/CoroFrame.cpp 1272 auto InitialValue = Constant::getNullValue(ValueTy);
lib/Transforms/Coroutines/CoroInstr.h 169 Constant *Initializer = GV->getInitializer();
176 Constant *getRawInfo() const {
177 return cast<Constant>(getArgOperand(InfoArg)->stripPointerCasts());
180 void setInfo(Constant *C) { setArgOperand(InfoArg, C); }
342 return cast<Constant>(getArgOperand(FromArg))->isOneValue();
385 return cast<Constant>(getArgOperand(FinalArg))->isOneValue();
447 return cast<Constant>(getArgOperand(UnwindArg))->isOneValue();
lib/Transforms/Coroutines/CoroSplit.cpp 799 auto *SizeConstant = ConstantInt::get(SizeIntrin->getType(), Size);
824 SmallVector<Constant *, 4> Args(Fns.begin(), Fns.end());
830 auto *ConstVal = ConstantArray::get(ArrTy, Args);
837 auto *BC = ConstantExpr::getPointerCast(GV, Type::getInt8PtrTy(C));
lib/Transforms/IPO/Attributor.cpp 992 } else if (auto *RVC = dyn_cast<Constant>(UniqueRV.getValue())) {
992 } else if (auto *RVC = dyn_cast<Constant>(UniqueRV.getValue())) {
999 Constant *RVCCast =
1006 Constant *RVCCast =
1173 isa<Constant>(RetVal))
1210 } else if (isa<Constant>(RetVal)) {
2038 if (Constant *C = dyn_cast<Constant>(&RV))
2038 if (Constant *C = dyn_cast<Constant>(&RV))
3184 if (isa<Constant>(It.first)) {
3373 if (auto *C = dyn_cast<Constant>(SimplifiedAssociatedValue.getValue())) {
3373 if (auto *C = dyn_cast<Constant>(SimplifiedAssociatedValue.getValue())) {
3458 if (isa<Constant>(V) || isa<UndefValue>(V))
3572 Constant *Size;
lib/Transforms/IPO/CalledValuePropagation.cpp 130 } else if (auto *C = dyn_cast<Constant>(Key.getPointer())) {
130 } else if (auto *C = dyn_cast<Constant>(Key.getPointer())) {
230 CVPLatticeVal computeConstant(Constant *C) {
lib/Transforms/IPO/ConstantMerge.cpp 116 Constant *NewConstant = New;
141 DenseMap<Constant *, GlobalVariable *> CMap;
181 Constant *Init = GV->getInitializer();
212 Constant *Init = GV->getInitializer();
lib/Transforms/IPO/ElimAvailExtern.cpp 40 Constant *Init = GV.getInitializer();
lib/Transforms/IPO/FunctionAttrs.cpp 870 if (Constant *C = dyn_cast<Constant>(RetVal)) {
870 if (Constant *C = dyn_cast<Constant>(RetVal)) {
lib/Transforms/IPO/GlobalDCE.cpp 107 } else if (auto *CE = dyn_cast<Constant>(V)) {
107 } else if (auto *CE = dyn_cast<Constant>(V)) {
209 Constant *Ptr =
360 Constant *Init = GV.getInitializer();
lib/Transforms/IPO/GlobalOpt.cpp 161 if (isa<Constant>(V))
212 if (isa<Constant>(V)) {
220 if (isa<Constant>(MSI->getValue())) {
241 } else if (Constant *C = dyn_cast<Constant>(U)) {
241 } else if (Constant *C = dyn_cast<Constant>(U)) {
276 Value *V, Constant *Init, const DataLayout &DL,
304 Constant *SubInit = nullptr;
323 Constant *SubInit = nullptr;
334 SubInit = Constant::getNullValue(GEP->getResultElementType());
348 } else if (Constant *C = dyn_cast<Constant>(U)) {
348 } else if (Constant *C = dyn_cast<Constant>(U)) {
370 if (U->getNumOperands() < 3 || !isa<Constant>(U->getOperand(1)) ||
371 !cast<Constant>(U->getOperand(1))->isNullValue())
400 if (Constant *C = dyn_cast<Constant>(V))
400 if (Constant *C = dyn_cast<Constant>(V))
468 Constant *Init = GV->getInitializer();
484 Constant *In = Init->getAggregateElement(i);
519 Constant *In = Init->getAggregateElement(i);
548 Constant *NullInt =Constant::getNullValue(Type::getInt32Ty(GV->getContext()));
548 Constant *NullInt =Constant::getNullValue(Type::getInt32Ty(GV->getContext()));
570 SmallVector<Constant*, 8> Idxs;
575 ConstantExpr::getGetElementPtr(NewTy, cast<Constant>(NewPtr), Idxs);
679 static bool OptimizeAwayTrappingUsesOfValue(Value *V, Constant *NewV) {
724 SmallVector<Constant*, 8> Idxs;
728 if (Constant *C = dyn_cast<Constant>(*i))
728 if (Constant *C = dyn_cast<Constant>(*i))
751 GlobalVariable *GV, Constant *LV, const DataLayout &DL,
819 if (Constant *NewC = ConstantFoldInstruction(I, DL, TLI)) {
877 Constant *RepValue = NewGV;
1209 Constant::getNullValue(NPtr->getType()),
1305 Constant::getNullValue(PFieldTy), GV->getName() + ".f" + Twine(FieldNo),
1335 Constant *ConstantZero = ConstantInt::get(CI->getArgOperand(0)->getType(), 0);
1340 Constant::getNullValue(FieldMallocs[i]->getType()),
1368 Constant::getNullValue(GVVal->getType()));
1378 new StoreInst(Constant::getNullValue(GVVal->getType()), FieldGlobals[i],
1416 Constant *Null = Constant::getNullValue(ValTy);
1416 Constant *Null = Constant::getNullValue(ValTy);
1583 if (Constant *SOVC = dyn_cast<Constant>(StoredOnceVal)) {
1583 if (Constant *SOVC = dyn_cast<Constant>(StoredOnceVal)) {
1606 static bool TryToShrinkGlobalToBoolean(GlobalVariable *GV, Constant *OtherVal) {
1638 Constant *InitVal = GV->getInitializer();
1864 static bool allNonInstructionUsersCanBeMadeInstructions(Constant *C) {
1890 static void makeAllConstantUsesInstructions(Constant *C) {
2023 if (Constant *SOVConstant = dyn_cast<Constant>(GS.StoredOnceValue))
2023 if (Constant *SOVConstant = dyn_cast<Constant>(GS.StoredOnceValue))
2049 if (Constant *SOVConstant = dyn_cast<Constant>(GS.StoredOnceValue)) {
2049 if (Constant *SOVConstant = dyn_cast<Constant>(GS.StoredOnceValue)) {
2365 if (auto *C = dyn_cast<Constant>(GV->getInitializer())) {
2365 if (auto *C = dyn_cast<Constant>(GV->getInitializer())) {
2370 Constant *New = ConstantFoldConstant(C, DL, /*TLI*/ nullptr);
2388 static Constant *EvaluateStoreInto(Constant *Init, Constant *Val,
2388 static Constant *EvaluateStoreInto(Constant *Init, Constant *Val,
2388 static Constant *EvaluateStoreInto(Constant *Init, Constant *Val,
2396 SmallVector<Constant*, 32> Elts;
2431 static void CommitValueTo(Constant *Val, Constant *Addr) {
2431 static void CommitValueTo(Constant *Val, Constant *Addr) {
2484 static void BatchCommitValueTo(const DenseMap<Constant*, Constant*> &Mem) {
2484 static void BatchCommitValueTo(const DenseMap<Constant*, Constant*> &Mem) {
2485 SmallVector<std::pair<GlobalVariable*, Constant*>, 32> GVs;
2486 SmallVector<std::pair<ConstantExpr*, Constant*>, 32> ComplexCEs;
2487 SmallVector<std::pair<ConstantExpr*, Constant*>, 32> SimpleCEs;
2520 SmallVector<Constant *, 32> Elts;
2525 Constant *Init = GV->getInitializer();
2556 Constant *Val = CEPair.second;
2574 Constant *RetValDummy;
2593 static int compareNames(Constant *const *A, Constant *const *B) {
2593 static int compareNames(Constant *const *A, Constant *const *B) {
2609 SmallVector<Constant *, 8> UsedArray;
2611 Constant *Cast
2736 Constant *Aliasee = GA.getAliasee();
2777 Constant *Aliasee = J->getAliasee();
2900 CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
lib/Transforms/IPO/GlobalSplit.cpp 56 if (!isa<Constant>(U))
126 auto *NewGEP = ConstantExpr::getGetElementPtr(
lib/Transforms/IPO/IPConstantPropagation.cpp 55 SmallVector<std::pair<Constant*, bool>, 16> ArgumentConstants;
86 Constant *C = dyn_cast_or_null<Constant>(V);
86 Constant *C = dyn_cast_or_null<Constant>(V);
199 if (isa<Constant>(V) || isa<Argument>(V)) {
lib/Transforms/IPO/LowerTypeTests.cpp 418 Constant *OffsetedGlobal;
422 Constant *AlignLog2;
426 Constant *SizeM1;
429 Constant *TheByteArray;
432 Constant *BitMask;
435 Constant *InlineBits;
457 ArrayRef<Metadata *> TypeIds, Constant *CombinedGlobalAddr,
481 void replaceWeakDeclarationWithJumpTablePtr(Function *F, Constant *JT,
484 void findGlobalVariableUsersOf(Constant *C,
630 Constant *ByteArrayConst = ConstantDataArray::get(M.getContext(), BAB.Bytes);
638 Constant *Idxs[] = {ConstantInt::get(IntPtrTy, 0),
640 Constant *GEP = ConstantExpr::getInBoundsGetElementPtr(
668 Constant *ByteArray = TIL.TheByteArray;
744 Constant *OffsetedGlobalAsInt =
822 std::vector<Constant *> GlobalInits;
857 Constant *NewInit = ConstantStruct::getAnon(M.getContext(), GlobalInits);
873 Constant *CombinedGlobalIdxs[] = {ConstantInt::get(Int32Ty, 0),
875 Constant *CombinedGlobalElemPtr = ConstantExpr::getGetElementPtr(
964 Constant *C = M.getOrInsertGlobal(("__typeid_" + TypeId + "_" + Name).str(),
975 Constant *C =
982 Constant *C = ImportGlobal(Name);
1107 ArrayRef<Metadata *> TypeIds, Constant *CombinedGlobalAddr,
1272 GV->setInitializer(Constant::getNullValue(GV->getValueType()));
1276 Constant *C, SmallSetVector<GlobalVariable *, 8> &Out) {
1280 else if (auto *C2 = dyn_cast<Constant>(U))
1280 else if (auto *C2 = dyn_cast<Constant>(U))
1287 Function *F, Constant *JT, bool IsJumpTableCanonical) {
1303 Constant *Target = ConstantExpr::getSelect(
1305 Constant::getNullValue(F->getType())),
1306 JT, Constant::getNullValue(F->getType()));
1510 Constant *CombinedGlobalElemPtr = ConstantExpr::getBitCast(
1714 SmallSetVector<Constant *, 4> Constants;
1730 if (auto *C = dyn_cast<Constant>(U.getUser())) {
1730 if (auto *C = dyn_cast<Constant>(U.getUser())) {
1743 for (auto *C : Constants)
lib/Transforms/IPO/MergeFunctions.cpp 446 Constant *BitcastNew = ConstantExpr::getBitCast(New, Old->getType());
766 Constant *BitcastF = ConstantExpr::getBitCast(F, G->getType());
837 Constant *BitcastF = ConstantExpr::getBitCast(F, G->getType());
lib/Transforms/IPO/StripSymbols.cpp 140 static void RemoveDeadConstant(Constant *C) {
142 SmallPtrSet<Constant*, 4> Operands;
145 Operands.insert(cast<Constant>(Op));
155 for (Constant *O : Operands)
254 std::vector<Constant*> DeadConstants;
264 if (Constant *C = dyn_cast<Constant>(Arg1))
264 if (Constant *C = dyn_cast<Constant>(Arg1))
270 if (Constant *C = dyn_cast<Constant>(Arg2))
270 if (Constant *C = dyn_cast<Constant>(Arg2))
277 Constant *C = DeadConstants.back();
lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp 187 void forEachVirtualFunction(Constant *C, function_ref<void(Function *)> Fn) {
193 forEachVirtualFunction(cast<Constant>(Op), Fn);
lib/Transforms/IPO/WholeProgramDevirt.cpp 500 void applySingleImplDevirt(VTableSlotInfo &SlotInfo, Constant *TheFn,
507 void applyICallBranchFunnel(VTableSlotInfo &SlotInfo, Constant *JT,
534 Constant *C);
540 Constant *importGlobal(VTableSlot Slot, ArrayRef<uint64_t> Args,
542 Constant *importConstant(VTableSlot Slot, ArrayRef<uint64_t> Args,
546 Constant *getMemberAddr(const TypeMemberInfo *M);
549 Constant *UniqueMemberAddr);
557 Constant *Byte, Constant *Bit);
557 Constant *Byte, Constant *Bit);
819 Constant *Ptr = getPointerAtOffset(TM.Bits->GV->getInitializer(),
869 Constant *TheFn, bool &IsExported) {
1087 Constant *JT, bool &IsExported) {
1171 SmallVector<Constant *, 2> EvalArgs;
1173 Constant::getNullValue(Target.Fn->getFunctionType()->getParamType(0)));
1182 Constant *RetVal;
1241 StringRef Name, Constant *C) {
1260 Constant *DevirtModule::importGlobal(VTableSlot Slot, ArrayRef<uint64_t> Args,
1262 Constant *C = M.getOrInsertGlobal(getGlobalName(Slot, Args, Name), Int8Ty);
1269 Constant *DevirtModule::importConstant(VTableSlot Slot, ArrayRef<uint64_t> Args,
1275 Constant *C = importGlobal(Slot, Args, Name);
1300 Constant *UniqueMemberAddr) {
1313 Constant *DevirtModule::getMemberAddr(const TypeMemberInfo *M) {
1314 Constant *C = ConstantExpr::getBitCast(M->Bits->GV, Int8PtrTy);
1338 Constant *UniqueMemberAddr = getMemberAddr(UniqueMember);
1368 Constant *Byte, Constant *Bit) {
1368 Constant *Byte, Constant *Bit) {
1482 Constant *ByteConst = ConstantInt::get(Int32Ty, OffsetByte);
1483 Constant *BitConst = ConstantInt::get(Int8Ty, 1ULL << OffsetBit);
1695 Constant *SingleImpl =
1696 cast<Constant>(M.getOrInsertFunction(Res.SingleImplName,
1720 Constant *UniqueMemberAddr =
1727 Constant *Byte = importConstant(Slot, CSByConstantArg.first, "byte",
1729 Constant *Bit = importConstant(Slot, CSByConstantArg.first, "bit", Int8Ty,
1742 Constant *JT = cast<Constant>(
1742 Constant *JT = cast<Constant>(
lib/Transforms/InstCombine/InstCombineAddSub.cpp 470 InstQuota = ((!isa<Constant>(V0) && V0->hasOneUse()) &&
471 (!isa<Constant>(V1) && V1->hasOneUse())) ? 2 : 1;
830 Constant *Op1C;
841 Constant *NewC =
848 Constant *NarrowC;
850 Constant *WideC = ConstantExpr::getSExt(NarrowC, Ty);
851 Constant *NewC = ConstantExpr::getAdd(WideC, Op1C);
857 Constant *WideC = ConstantExpr::getZExt(NarrowC, Ty);
858 Constant *NewC = ConstantExpr::getAdd(WideC, Op1C);
868 Constant *Op1C;
876 Constant *Op00C;
1066 Constant *MinusOne = Constant::getAllOnesValue(NBits->getType());
1066 Constant *MinusOne = Constant::getAllOnesValue(NBits->getType());
1134 Constant *C;
1180 Constant *SignExtendingValueBaseConstant;
1249 Constant *ShAmt = ConstantInt::get(Ty, ExtendAmt);
1541 Constant *CI =
1696 if (cast<Constant>(Op1)->isNotMinSignedValue() && I.hasNoSignedWrap())
1729 if (Constant *C = dyn_cast<Constant>(Op0)) {
1729 if (Constant *C = dyn_cast<Constant>(Op0)) {
1761 Constant *C2;
1886 Constant *C = nullptr;
1903 Constant *NegDivC = ConstantInt::get(I.getType(), -(*DivC));
2032 Constant *C;
2112 Constant *C;
2127 if (isa<Constant>(Op0))
2183 Constant *CSubOne = ConstantExpr::getFSub(C, ConstantFP::get(Ty, 1.0));
2188 Constant *OneSubC = ConstantExpr::getFSub(ConstantFP::get(Ty, 1.0), C);
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp 58 if (Constant *TorF = getPredForICmpCode(Code, Sign, LHS->getType(), NewPred))
184 Constant *HiMinusLo = ConstantInt::get(Ty, Hi - Lo);
339 L12 = Constant::getAllOnesValue(L1->getType());
344 L22 = Constant::getAllOnesValue(L2->getType());
374 R12 = Constant::getAllOnesValue(R1->getType());
398 R12 = Constant::getAllOnesValue(R2->getType());
656 Value *Zero = Constant::getNullValue(A->getType());
1483 if (CI->getSrcTy() == CI->getDestTy() || isa<Constant>(CastSrc))
1498 Constant *C = dyn_cast<Constant>(Logic.getOperand(1));
1498 Constant *C = dyn_cast<Constant>(Logic.getOperand(1));
1512 Constant *TruncC = ConstantExpr::getTrunc(C, SrcTy);
1513 Constant *ZextTruncC = ConstantExpr::getZExt(TruncC, DestTy);
1522 Constant *TruncC = ConstantExpr::getTrunc(C, SrcTy);
1523 Constant *SextTruncC = ConstantExpr::getSExt(TruncC, DestTy);
1655 static bool canNarrowShiftAmt(Constant *C, unsigned BitWidth) {
1663 Constant *Elt = C->getAggregateElement(i);
1688 Constant *C;
1765 Constant *NewC = ConstantInt::get(I.getType(), *C & *XorC);
1798 if (!isa<Constant>(Y) && MaskedValueIsZero(Y, NotAndMask, 0, &I)) {
1831 auto *TruncC1 = ConstantExpr::getTrunc(C1, X->getType());
1838 auto *TruncC2 = ConstantExpr::getTrunc(AndRHS, X->getType());
1860 Constant *C3 = ConstantExpr::getTrunc(YC, I.getType());
1957 return SelectInst::Create(A, Op1, Constant::getNullValue(I.getType()));
1960 return SelectInst::Create(A, Op0, Constant::getNullValue(I.getType()));
2090 static bool areInverseVectorBitmasks(Constant *C1, Constant *C2) {
2090 static bool areInverseVectorBitmasks(Constant *C1, Constant *C2) {
2093 Constant *EltC1 = C1->getAggregateElement(i);
2094 Constant *EltC2 = C2->getAggregateElement(i);
2129 Constant *AConst, *BConst;
2925 Constant *C;
3046 if (isa<Constant>(X) || NotVal->hasOneUse())
3059 Constant *C;
3075 Constant *C1;
3077 Constant *C2;
3104 Constant *NewC = ConstantInt::get(I.getType(), *C + *RHSC);
3109 Constant *NewC = ConstantInt::get(I.getType(), *C + *RHSC);
3116 Constant *NewC = ConstantInt::get(I.getType(), *C ^ *RHSC);
lib/Transforms/InstCombine/InstCombineCalls.cpp 95 static Constant *getNegativeIsTrueBoolVec(ConstantDataVector *V) {
96 SmallVector<Constant *, 32> BoolVec;
99 Constant *Elt = V->getElementAsConstant(I);
130 MI->setLength(Constant::getNullValue(MI->getLength()->getType()));
223 MI->setLength(Constant::getNullValue(MemOpLength->getType()));
240 MI->setLength(Constant::getNullValue(MI->getLength()->getType()));
279 MI->setLength(Constant::getNullValue(LenC->getType()));
467 auto *CShift = dyn_cast<Constant>(II.getArgOperand(1));
467 auto *CShift = dyn_cast<Constant>(II.getArgOperand(1));
482 auto *CElt = CShift->getAggregateElement(I);
509 SmallVector<Constant *, 8> ConstantVec;
526 SmallVector<Constant *, 8> ShiftVecAmts;
567 if (!isa<Constant>(Arg0) || !isa<Constant>(Arg1))
567 if (!isa<Constant>(Arg0) || !isa<Constant>(Arg1))
589 auto *MinC = Constant::getIntegerValue(ArgTy, MinValue);
589 auto *MinC = Constant::getIntegerValue(ArgTy, MinValue);
590 auto *MaxC = Constant::getIntegerValue(ArgTy, MaxValue);
590 auto *MaxC = Constant::getIntegerValue(ArgTy, MaxValue);
618 return Constant::getNullValue(ResTy);
634 Res = Builder.CreateICmpSLT(Res, Constant::getNullValue(IntegerVecTy));
731 Constant *Args[] = {ConstantInt::get(IntTy64, Val),
737 Constant *C0 = dyn_cast<Constant>(Op0);
737 Constant *C0 = dyn_cast<Constant>(Op0);
777 SmallVector<Constant *, 16> ShuffleMask;
780 Constant::getIntegerValue(IntTy32, APInt(32, i + Index)));
783 Constant::getIntegerValue(IntTy32, APInt(32, i + 16)));
857 SmallVector<Constant *, 16> ShuffleMask;
859 ShuffleMask.push_back(Constant::getIntegerValue(IntTy32, APInt(32, i)));
862 Constant::getIntegerValue(IntTy32, APInt(32, i + 16)));
864 ShuffleMask.push_back(Constant::getIntegerValue(IntTy32, APInt(32, i)));
875 Constant *C0 = dyn_cast<Constant>(Op0);
875 Constant *C0 = dyn_cast<Constant>(Op0);
876 Constant *C1 = dyn_cast<Constant>(Op1);
876 Constant *C1 = dyn_cast<Constant>(Op1);
893 Constant *Args[] = {ConstantInt::get(IntTy64, Val.getZExtValue()),
902 Constant *CILength = ConstantInt::get(IntTy8, Length, false);
903 Constant *CIIndex = ConstantInt::get(IntTy8, Index, false);
917 Constant *V = dyn_cast<Constant>(II.getArgOperand(1));
917 Constant *V = dyn_cast<Constant>(II.getArgOperand(1));
928 Constant *Indexes[64] = {nullptr};
933 Constant *COp = V->getAggregateElement(I);
957 auto V2 = Constant::getNullValue(VecTy);
964 Constant *V = dyn_cast<Constant>(II.getArgOperand(1));
964 Constant *V = dyn_cast<Constant>(II.getArgOperand(1));
976 Constant *Indexes[16] = {nullptr};
980 Constant *COp = V->getAggregateElement(I);
1014 auto *V = dyn_cast<Constant>(II.getArgOperand(1));
1014 auto *V = dyn_cast<Constant>(II.getArgOperand(1));
1025 Constant *Indexes[64] = {nullptr};
1028 Constant *COp = V->getAggregateElement(I);
1077 auto *ConstMask = dyn_cast<Constant>(II.getArgOperand(3));
1077 auto *ConstMask = dyn_cast<Constant>(II.getArgOperand(3));
1123 auto *ConstMask = dyn_cast<Constant>(II.getArgOperand(3));
1123 auto *ConstMask = dyn_cast<Constant>(II.getArgOperand(3));
1227 auto *C = ConstantInt::get(Op0->getType(), DefiniteZeros);
1301 Constant *ZeroVec = Constant::getNullValue(II.getType());
1301 Constant *ZeroVec = Constant::getNullValue(II.getType());
1323 Constant *BoolMask = getNegativeIsTrueBoolVec(ConstMask);
1366 Constant *BoolMask = getNegativeIsTrueBoolVec(ConstMask);
1403 auto *C = dyn_cast<Constant>(II.getArgOperand(1));
1403 auto *C = dyn_cast<Constant>(II.getArgOperand(1));
1417 Constant *COp = C->getAggregateElement(I);
1429 auto *ShuffleMask = ConstantDataVector::get(II.getContext(),
1432 auto *V2 = Constant::getNullValue(V1->getType());
1432 auto *V2 = Constant::getNullValue(V1->getType());
1761 if (isa<Constant>(Arg0) && !isa<Constant>(Arg1)) {
1761 if (isa<Constant>(Arg0) && !isa<Constant>(Arg1)) {
1772 Constant *OverflowResult = nullptr;
1805 if (Constant *NumBytes = dyn_cast<Constant>(MI->getLength())) {
1805 if (Constant *NumBytes = dyn_cast<Constant>(MI->getLength())) {
1949 Constant *ShAmtC;
1953 Constant *WidthC = ConstantInt::get(Ty, BitWidth);
1954 Constant *ModuloC = ConstantExpr::getURem(ShAmtC, WidthC);
1968 Constant *LeftShiftC = ConstantExpr::getSub(WidthC, ShAmtC);
2054 Constant *C;
2109 Constant *C;
2284 Constant *LHS, *RHS;
2913 Constant *C1 = dyn_cast<Constant>(Op1);
2913 Constant *C1 = dyn_cast<Constant>(Op1);
2976 Constant *C1 = dyn_cast<Constant>(Op1);
2976 Constant *C1 = dyn_cast<Constant>(Op1);
3058 Constant *NewSelector = getNegativeIsTrueBoolVec(ConstantMask);
3164 if (Constant *Mask = dyn_cast<Constant>(II->getArgOperand(2))) {
3164 if (Constant *Mask = dyn_cast<Constant>(II->getArgOperand(2))) {
3171 Constant *Elt = Mask->getAggregateElement(i);
3272 if (Constant *CV0 = dyn_cast<Constant>(Arg0)) {
3272 if (Constant *CV0 = dyn_cast<Constant>(Arg0)) {
3273 if (Constant *CV1 = dyn_cast<Constant>(Arg1)) {
3273 if (Constant *CV1 = dyn_cast<Constant>(Arg1)) {
3285 if (Constant *CV1 = dyn_cast<Constant>(Arg1))
3285 if (Constant *CV1 = dyn_cast<Constant>(Arg1))
3485 Constant *Folded = ConstantVector::get({
3626 if (isa<Constant>(Src0) && !isa<Constant>(Src1)) {
3626 if (isa<Constant>(Src0) && !isa<Constant>(Src1)) {
3631 if (isa<Constant>(Src1) && !isa<Constant>(Src2)) {
3631 if (isa<Constant>(Src1) && !isa<Constant>(Src2)) {
3636 if (isa<Constant>(Src0) && !isa<Constant>(Src1)) {
3636 if (isa<Constant>(Src0) && !isa<Constant>(Src1)) {
3676 if (auto *CSrc0 = dyn_cast<Constant>(Src0)) {
3676 if (auto *CSrc0 = dyn_cast<Constant>(Src0)) {
3677 if (auto *CSrc1 = dyn_cast<Constant>(Src1)) {
3677 if (auto *CSrc1 = dyn_cast<Constant>(Src1)) {
3678 Constant *CCmp = ConstantExpr::getCompare(CCVal, CSrc0, CSrc1);
3799 if (!isa<Constant>(II->getArgOperand(0)))
3831 if (Constant *C = dyn_cast<Constant>(II->getArgOperand(0)))
3831 if (Constant *C = dyn_cast<Constant>(II->getArgOperand(0)))
4333 Constant::getNullValue(CalleeF->getType()));
4588 Args.push_back(Constant::getNullValue(FT->getParamType(i)));
4795 Constant *NewCallee =
4836 Constant *NewCallee = ConstantExpr::getBitCast(NestF, CalleeTy);
lib/Transforms/InstCombine/InstCombineCasts.cpp 163 if (Constant *C = dyn_cast<Constant>(V)) {
163 if (Constant *C = dyn_cast<Constant>(V)) {
166 if (Constant *FoldedC = ConstantFoldConstant(C, DL, &TLI))
306 if (isa<Constant>(V))
598 Constant *C;
601 Constant *NarrowC = ConstantExpr::getTrunc(C, DestTy);
607 Constant *NarrowC = ConstantExpr::getTrunc(C, DestTy);
644 Constant *NarrowUndef = UndefValue::get(Trunc.getType());
724 Value *Zero = Constant::getNullValue(Src->getType());
770 return replaceInstUsesWith(CI, Constant::getNullValue(DestTy));
868 Constant *One = ConstantInt::get(In->getType(), 1);
897 Constant *Res = ConstantInt::get(CI.getType(), isNE);
911 Constant *One = ConstantInt::get(In->getType(), 1);
1133 Constant *C = ConstantInt::get(Res->getType(),
1156 Constant *AndConst = ConstantInt::get(A->getType(), AndValue);
1204 Constant *C;
1216 Constant *ZC = ConstantExpr::getZExt(C, CI.getType());
1409 Constant *ShAmt = ConstantInt::get(DestTy, DestBitSize - SrcBitSize);
1438 Constant *ShAmtV = ConstantInt::get(CI.getType(), ShAmt);
1477 auto *CV = dyn_cast<Constant>(V);
1477 auto *CV = dyn_cast<Constant>(V);
1864 V2 = Constant::getNullValue(SrcTy);
1910 if (Constant *C = dyn_cast<Constant>(V))
1910 if (Constant *C = dyn_cast<Constant>(V))
1926 if (Constant *C = dyn_cast<Constant>(V)) {
1926 if (Constant *C = dyn_cast<Constant>(V)) {
1947 Constant *Piece = ConstantExpr::getLShr(C, ConstantInt::get(C->getType(),
2020 Value *Result = Constant::getNullValue(CI.getType());
2073 X->getType() == DestTy && !isa<Constant>(X)) {
2080 X->getType() == DestTy && !isa<Constant>(X)) {
2090 Constant *C;
2129 !isa<Constant>(X)) {
2136 !isa<Constant>(X)) {
2183 if (isa<Constant>(IncValue))
2234 if (auto *C = dyn_cast<Constant>(V)) {
2234 if (auto *C = dyn_cast<Constant>(V)) {
2365 Constant::getNullValue(Type::getInt32Ty(CI.getContext())));
2397 Constant::getNullValue(Type::getInt32Ty(CI.getContext())));
lib/Transforms/InstCombine/InstCombineCompares.cpp 149 Constant *Init = GV->getInitializer();
165 isa<Constant>(GEP->getOperand(2)))
222 Constant *CompareRHS = cast<Constant>(ICI.getOperand(1));
222 Constant *CompareRHS = cast<Constant>(ICI.getOperand(1));
224 Constant *Elt = Init->getAggregateElement(i);
235 Constant *C = ConstantFoldCompareInstOperands(ICI.getPredicate(), Elt,
512 Constant *OffsetVal = ConstantInt::get(IntPtrTy, NewOffs);
767 Constant *Index = ConstantInt::getNullValue(IndexType);
777 Constant *GEPIndex = static_cast<Constant *>(GEP->getOperand(1));
874 Constant::getNullValue(Offset->getType()));
878 isa<Constant>(RHS) && cast<Constant>(RHS)->isNullValue() &&
878 isa<Constant>(RHS) && cast<Constant>(RHS)->isNullValue() &&
905 cast<Constant>(RHS), Base->getType()));
1113 Constant *R = ConstantInt::get(X->getType(),
1205 auto *TorF = ConstantInt::get(I.getType(), I.getPredicate() == I.ICMP_NE);
1244 auto *TorF = ConstantInt::get(I.getType(), I.getPredicate() == I.ICMP_NE);
1354 Value *Mask = Builder.CreateAdd(Y, Constant::getAllOnesValue(Y->getType()));
1370 Constant *C;
1700 !Shift->isArithmeticShift() && !isa<Constant>(Shift->getOperand(0))) {
1741 Constant *Zero = Constant::getNullValue(X->getType());
1741 Constant *Zero = Constant::getNullValue(X->getType());
1749 Constant *NegBOC =
1750 ConstantExpr::getNeg(cast<Constant>(And->getOperand(1)));
1773 Constant *ZextC1 = ConstantInt::get(WideType, C1.zext(WideScalarBits));
1774 Constant *ZextC2 = ConstantInt::get(WideType, C2->zext(WideScalarBits));
1789 Constant *One = cast<Constant>(And->getOperand(1));
1789 Constant *One = cast<Constant>(And->getOperand(1));
1804 if (auto *C = dyn_cast<Constant>(B)) {
1804 if (auto *C = dyn_cast<Constant>(B)) {
1855 return new ICmpInst(NewPred, X, SubOne(cast<Constant>(Cmp.getOperand(1))));
1871 return new ICmpInst(NewPred, Trunc, Constant::getNullValue(NTy));
1954 Constant::getNullValue(Mul->getType()));
1995 Constant *BitWidthMinusOne = ConstantInt::get(ShiftType, TypeBits - 1);
2071 return new ICmpInst(Pred, X, Constant::getNullValue(ShType));
2101 Constant *Mask = ConstantInt::get(
2105 Constant *LShrC = ConstantInt::get(ShType, C.lshr(*ShiftAmt));
2113 Constant *Mask = ConstantInt::get(
2118 And, Constant::getNullValue(ShType));
2129 And, Constant::getNullValue(ShType));
2138 And, Constant::getNullValue(ShType));
2154 Constant *NewC =
2248 Constant *Mask = ConstantInt::get(ShrTy, Val);
2279 Constant *MaskC = ConstantInt::get(Ty, SignMask | (*DivisorC - 1));
2610 ConstantExpr::getNeg(cast<Constant>(Y)));
2617 ConstantExpr::getNeg(cast<Constant>(Y)));
2659 if (PredB == ICmpInst::ICMP_SGT && isa<Constant>(RHS2)) {
2662 getFlippedStrictnessPredicateAndConstant(PredB, cast<Constant>(RHS2));
2771 (isa<Constant>(Op1) || isa<BitCastInst>(Op1))) {
2795 Constant *Mask;
2914 Constant *RHS = cast<Constant>(Cmp.getOperand(1));
2914 Constant *RHS = cast<Constant>(Cmp.getOperand(1));
2925 Constant::getNullValue(BO->getType()));
2934 Constant *SubC = ConstantExpr::getSub(RHS, cast<Constant>(BOp1));
2934 Constant *SubC = ConstantExpr::getSub(RHS, cast<Constant>(BOp1));
2954 if (Constant *BOC = dyn_cast<Constant>(BOp1)) {
2954 if (Constant *BOC = dyn_cast<Constant>(BOp1)) {
2969 Constant *SubC = ConstantExpr::getSub(cast<Constant>(BOp0), RHS);
2969 Constant *SubC = ConstantExpr::getSub(cast<Constant>(BOp0), RHS);
2983 Constant *NotBOC = ConstantExpr::getNot(cast<Constant>(BOp1));
2983 Constant *NotBOC = ConstantExpr::getNot(cast<Constant>(BOp1));
2995 BO, Constant::getNullValue(RHS->getType()));
3006 return new ICmpInst(Pred, BOp0, Constant::getNullValue(RHS->getType()));
3072 auto *NewOp =
3073 IsZero ? Constant::getNullValue(Ty) : Constant::getAllOnesValue(Ty);
3073 IsZero ? Constant::getNullValue(Ty) : Constant::getAllOnesValue(Ty);
3085 Cmp.getPredicate(), Or, Constant::getNullValue(Ty)));
3170 Constant *RHSC = dyn_cast<Constant>(Op1);
3170 Constant *RHSC = dyn_cast<Constant>(Op1);
3182 Constant::getNullValue(LHSI->getOperand(0)->getType()));
3198 if (Constant *C = dyn_cast<Constant>(LHSI->getOperand(1))) {
3198 if (Constant *C = dyn_cast<Constant>(LHSI->getOperand(1))) {
3202 if (Constant *C = dyn_cast<Constant>(LHSI->getOperand(2))) {
3202 if (Constant *C = dyn_cast<Constant>(LHSI->getOperand(2))) {
3246 Constant::getNullValue(LHSI->getOperand(0)->getType()));
3500 if (!isa<Constant>(X) && !isa<Constant>(Y)) {
3500 if (!isa<Constant>(X) && !isa<Constant>(Y)) {
3520 auto *NewShAmt = dyn_cast_or_null<Constant>(
3520 auto *NewShAmt = dyn_cast_or_null<Constant>(
3542 Constant *NewShAmtSplat = NewShAmt->getType()->isVectorTy()
3552 if (auto *C = dyn_cast<Constant>(NarrowestShift->getOperand(0))) {
3552 if (auto *C = dyn_cast<Constant>(NarrowestShift->getOperand(0))) {
3563 if (auto *C = dyn_cast<Constant>(WidestShift->getOperand(0))) {
3563 if (auto *C = dyn_cast<Constant>(WidestShift->getOperand(0))) {
3593 Constant::getNullValue(WidestTy));
3718 Constant::getNullValue(Op1->getType()));
3723 return new ICmpInst(Pred, Constant::getNullValue(Op0->getType()),
3858 return new ICmpInst(Pred, Constant::getNullValue(Op1->getType()), B);
3861 return new ICmpInst(Pred, D, Constant::getNullValue(Op0->getType()));
3891 if (Constant *RHSC = dyn_cast<Constant>(Op1))
3891 if (Constant *RHSC = dyn_cast<Constant>(Op1))
3918 Constant::getAllOnesValue(SRem->getType()));
3922 Constant::getNullValue(SRem->getType()));
3966 Constant *Mask = ConstantInt::get(
4014 auto *Zero = Constant::getNullValue(BO0->getType());
4014 auto *Zero = Constant::getNullValue(BO0->getType());
4131 return new ICmpInst(Pred, OtherVal, Constant::getNullValue(A->getType()));
4139 Constant *NC = Builder.getInt(C1->getValue() ^ C2->getValue());
4159 return new ICmpInst(Pred, OtherVal, Constant::getNullValue(A->getType()));
4189 I.setOperand(1, Constant::getNullValue(Op1->getType()));
4234 return new ICmpInst(Pred, And, Constant::getNullValue(Cst1->getType()));
4346 auto *C = dyn_cast<Constant>(ICmp.getOperand(1));
4346 auto *C = dyn_cast<Constant>(ICmp.getOperand(1));
4354 Constant *Res1 = ConstantExpr::getTrunc(C, SrcTy);
4355 Constant *Res2 = ConstantExpr::getCast(CastOp0->getOpcode(), Res1, DestTy);
4382 return new ICmpInst(CmpInst::ICMP_SGT, X, Constant::getAllOnesValue(SrcTy));
4387 return new ICmpInst(CmpInst::ICMP_SLT, X, Constant::getNullValue(SrcTy));
4395 if (!isa<Constant>(ICmp.getOperand(1)) && !isa<CastInst>(ICmp.getOperand(1)))
4423 } else if (auto *RHSC = dyn_cast<Constant>(ICmp.getOperand(1))) {
4423 } else if (auto *RHSC = dyn_cast<Constant>(ICmp.getOperand(1))) {
4472 Instruction &OrigI, Value *&Result, Constant *&Overflow) {
4473 if (OrigI.isCommutative() && isa<Constant>(LHS) && !isa<Constant>(RHS))
4473 if (OrigI.isCommutative() && isa<Constant>(LHS) && !isa<Constant>(RHS))
4966 if (!isa<Constant>(Op0) && Op0Min == Op0Max)
4968 if (!isa<Constant>(Op1) && Op1Min == Op1Max)
5003 auto *CmpC = ConstantInt::get(XTy, ValToCheck.countTrailingZeros());
5009 auto *CmpC = ConstantInt::get(XTy, ValToCheck.countTrailingZeros());
5047 Constant::getNullValue(Op1->getType()));
5069 Constant::getNullValue(Op1->getType()));
5151 llvm::Optional<std::pair<CmpInst::Predicate, Constant *>>
5153 Constant *C) {
5177 Constant *Elt = C->getAggregateElement(i);
5198 Constant *OneOrNegOne = ConstantInt::get(Type, WillIncrement ? 1 : -1, true);
5199 Constant *NewC = ConstantExpr::getAdd(C, OneOrNegOne);
5215 auto *Op1C = dyn_cast<Constant>(Op1);
5215 auto *Op1C = dyn_cast<Constant>(Op1);
5353 Constant *Zero = Constant::getNullValue(NewX->getType());
5353 Constant *Zero = Constant::getNullValue(NewX->getType());
5363 Constant *M;
5464 Constant *Zero = Constant::getNullValue(Op0->getType());
5464 Constant *Zero = Constant::getNullValue(Op0->getType());
5470 Constant *AllOnes = Constant::getAllOnesValue(Op0->getType());
5470 Constant *AllOnes = Constant::getAllOnesValue(Op0->getType());
5543 Constant *Overflow;
5605 Constant *RHSC) {
5766 Constant *RHSInt = LHSUnsigned
5844 Constant *RHSC) {
5982 I.setOperand(1, Constant::getNullValue(OpType));
5991 I.setOperand(1, Constant::getNullValue(OpType));
6038 Constant *RHSC;
6074 Constant *C;
6076 Constant *NegC = ConstantExpr::getFNeg(C);
6102 Constant *NewC = ConstantFP::get(X->getType(), TruncC);
lib/Transforms/InstCombine/InstCombineInternal.h 92 return isa<Constant>(V) ? (isa<UndefValue>(V) ? 0 : 1) : 2;
155 llvm::Optional<std::pair<CmpInst::Predicate, Constant *>>
156 getFlippedStrictnessPredicateAndConstant(CmpInst::Predicate Pred, Constant *C);
171 static inline Constant *AddOne(Constant *C) {
171 static inline Constant *AddOne(Constant *C) {
176 static inline Constant *SubOne(Constant *C) {
176 static inline Constant *SubOne(Constant *C) {
205 if (isa<Constant>(BO->getOperand(0)) || isa<Constant>(BO->getOperand(1)))
205 if (isa<Constant>(BO->getOperand(0)) || isa<Constant>(BO->getOperand(1)))
245 static inline Constant *getSafeVectorConstantForBinop(
246 BinaryOperator::BinaryOps Opcode, Constant *In, bool IsRHSConstant) {
250 auto *SafeC = ConstantExpr::getBinOpIdentity(Opcode, EltTy, IsRHSConstant);
279 SafeC = Constant::getNullValue(EltTy);
288 SmallVector<Constant *, 16> Out(NumElts);
290 Constant *C = In->getAggregateElement(i);
405 Instruction *FoldShiftByConstant(Value *Op0, Constant *Op1,
501 Constant *&OverflowResult);
683 Constant *Overflow) {
684 Constant *V[] = {UndefValue::get(Result->getType()), Overflow};
686 Constant *Struct = ConstantStruct::get(ST, V);
909 Constant *RHSC);
lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp 213 Value *NullIdx = Constant::getNullValue(IdxTy);
226 return IC.replaceInstUsesWith(AI, Constant::getNullValue(AI.getType()));
412 Constant *TheSrc = cast<Constant>(Copy->getSource());
412 Constant *TheSrc = cast<Constant>(Copy->getSource());
416 Constant *Cast =
863 if (isa<Constant>(GEPI->getOperand(Idx)))
1005 Constant::getNullValue(Op->getType()), &LI);
lib/Transforms/InstCombine/InstCombineMulDivRem.cpp 102 static Constant *getLogBase2(Type *Ty, Constant *C) {
102 static Constant *getLogBase2(Type *Ty, Constant *C) {
110 SmallVector<Constant *, 4> Elts;
112 Constant *Elt = C->getAggregateElement(I);
197 Constant *C1, *C2;
203 Constant *Shl = ConstantExpr::getShl(C1, C2);
216 if (Constant *NewCst = getLogBase2(NewOp->getType(), C1)) {
264 if (isa<Constant>(Op1)) {
267 Constant *C1;
279 Constant *Op1C;
422 Constant *C;
438 Constant *C1;
441 Constant *CC1 = ConstantExpr::getFMul(C, C1);
447 Constant *CDivC1 = ConstantExpr::getFDiv(C, C1);
453 Constant *C1DivC = ConstantExpr::getFDiv(C1, C);
463 Constant *CC1 = ConstantExpr::getFMul(C, C1);
469 Constant *CC1 = ConstantExpr::getFMul(C, C1);
848 Constant *C1 = getLogBase2(Op0->getType(), cast<Constant>(Op1));
848 Constant *C1 = getLogBase2(Op0->getType(), cast<Constant>(Op1));
865 Constant *CI;
869 Constant *Log2Base = getLogBase2(N->getType(), CI);
934 Constant *C;
938 Constant *TruncC = ConstantExpr::getTrunc(C, X->getType());
946 Value *NarrowOp = isa<Constant>(D) ? Builder.CreateBinOp(Opcode, X, TruncC)
1091 Constant *NarrowDivisor =
1092 ConstantExpr::getTrunc(cast<Constant>(Op1), Op0Src->getType());
1102 Constant *NegC = ConstantInt::get(I.getType(), -(*Op1C));
1142 Constant *C;
1161 auto *RecipC = ConstantExpr::getFDiv(ConstantFP::get(I.getType(), 1.0), C);
1171 Constant *C;
1184 Constant *C2, *NewC = nullptr;
1218 if (isa<Constant>(Op0))
1223 if (isa<Constant>(Op1))
1231 (!isa<Constant>(Y) || !isa<Constant>(Op1))) {
1231 (!isa<Constant>(Y) || !isa<Constant>(Op1))) {
1237 (!isa<Constant>(Y) || !isa<Constant>(Op0))) {
1237 (!isa<Constant>(Y) || !isa<Constant>(Op0))) {
1318 if (isa<Constant>(Op1)) {
1365 Constant *N1 = Constant::getAllOnesValue(Ty);
1365 Constant *N1 = Constant::getAllOnesValue(Ty);
1433 Constant *C = cast<Constant>(Op1);
1433 Constant *C = cast<Constant>(Op1);
1439 Constant *Elt = C->getAggregateElement(i);
1451 SmallVector<Constant *, 16> Elts(VWidth);
1460 Constant *NewRHSV = ConstantVector::get(Elts);
lib/Transforms/InstCombine/InstCombinePHI.cpp 687 } else if (auto *C = dyn_cast<Constant>(V)) {
687 } else if (auto *C = dyn_cast<Constant>(V)) {
689 Constant *Trunc = ConstantExpr::getTrunc(C, NarrowType);
742 Constant *ConstantOp = nullptr;
757 ConstantOp = dyn_cast<Constant>(FirstInst->getOperand(1));
lib/Transforms/InstCombine/InstCombineSelect.cpp 62 Constant *C;
85 Constant *IdC = ConstantExpr::getBinOpIdentity(BO->getOpcode(), Ty, true);
184 Constant *C = ConstantInt::get(SelType, TC);
191 Constant *C = ConstantInt::get(SelType, FC);
429 if (TVI->hasOneUse() && !isa<Constant>(FalseVal)) {
445 if (!isa<Constant>(OOp) || (OOpIsAPInt && isSelect01(CI, *OOpC))) {
460 if (FVI->hasOneUse() && !isa<Constant>(TrueVal)) {
476 if (!isa<Constant>(OOp) || (OOpIsAPInt && isSelect01(CI, *OOpC))) {
526 Constant *One = ConstantInt::get(SelType, 1);
913 Constant *AdjustedRHS;
931 Constant *SextRHS = ConstantExpr::getSExt(AdjustedRHS, SelTy);
945 Constant *ZextRHS = ConstantExpr::getZExt(AdjustedRHS, SelTy);
993 if (!Cmp.hasOneUse() || !isa<Constant>(Cmp.getOperand(1)))
1031 if (!Cmp.hasOneUse() || !isa<Constant>(Cmp.getOperand(1)))
1188 Constant *C0;
1228 Constant *C1;
1238 Constant *C2;
1282 auto *ThresholdLowIncl = ConstantExpr::getNeg(C1);
1283 auto *ThresholdHighExcl = ConstantExpr::getSub(C0, C1);
1286 auto *Precond1 = ConstantExpr::getICmp(ICmpInst::Predicate::ICMP_SGE, C2,
1291 auto *Precond2 = ConstantExpr::getICmp(ICmpInst::Predicate::ICMP_SLE, C2,
1320 Constant *C0;
1412 if (CmpRHS != CmpLHS && isa<Constant>(CmpRHS)) {
1736 Constant *C;
1763 Constant *TruncC = ConstantExpr::getTrunc(C, SmallType);
1764 Constant *ExtC = ConstantExpr::getCast(ExtOpcode, TruncC, SelType);
1782 Constant *One = ConstantInt::getTrue(SmallType);
1783 Constant *AllOnesOrOne = ConstantExpr::getCast(ExtOpcode, One, SelType);
1788 Constant *Zero = ConstantInt::getNullValue(SelType);
1800 Constant *CondC;
1805 SmallVector<Constant *, 16> Mask;
1809 Constant *Elt = CondC->getAggregateElement(i);
lib/Transforms/InstCombine/InstCombineShifts.cpp 83 auto *NewShAmt = dyn_cast_or_null<Constant>(
83 auto *NewShAmt = dyn_cast_or_null<Constant>(
142 static Constant *replaceUndefsWith(Constant *C, Constant *Replacement) {
142 static Constant *replaceUndefsWith(Constant *C, Constant *Replacement) {
142 static Constant *replaceUndefsWith(Constant *C, Constant *Replacement) {
147 llvm::SmallVector<Constant *, 32> NewOps(CV->getNumOperands());
149 Constant *EltC = CV->getOperand(i);
204 Constant *NewMask;
208 auto *SumOfShAmts = dyn_cast_or_null<Constant>(SimplifyAddInst(
208 auto *SumOfShAmts = dyn_cast_or_null<Constant>(SimplifyAddInst(
222 auto *ExtendedSumOfShAmts = ConstantExpr::getZExt(SumOfShAmts, ExtendedTy);
224 auto *ExtendedAllOnes = ConstantExpr::getAllOnesValue(ExtendedTy);
225 auto *ExtendedInvertedMask =
232 auto *ShAmtsDiff = dyn_cast_or_null<Constant>(SimplifySubInst(
232 auto *ShAmtsDiff = dyn_cast_or_null<Constant>(SimplifySubInst(
247 auto *ExtendedNumHighBitsToClear = ConstantExpr::getZExt(
254 auto *ExtendedAllOnes = ConstantExpr::getAllOnesValue(ExtendedTy);
302 if (isa<Constant>(Op0))
307 if (Constant *CUI = dyn_cast<Constant>(Op1))
307 if (Constant *CUI = dyn_cast<Constant>(Op1))
318 Constant *C;
398 if (isa<Constant>(V))
498 return Constant::getNullValue(ShType);
534 if (Constant *C = dyn_cast<Constant>(V)) {
534 if (Constant *C = dyn_cast<Constant>(V)) {
540 if (auto *C = dyn_cast<Constant>(V))
540 if (auto *C = dyn_cast<Constant>(V))
541 if (auto *FoldedC =
602 Instruction *InstCombiner::FoldShiftByConstant(Value *Op0, Constant *Op1,
644 Constant *ShAmt =
645 ConstantExpr::getZExt(cast<Constant>(Op1), TrOp->getType());
702 Constant *Mask = ConstantInt::get(I.getContext(), Bits);
737 Constant *Mask = ConstantInt::get(I.getContext(), Bits);
767 Constant *NewRHS = ConstantExpr::get(I.getOpcode(),
768 cast<Constant>(Op0BO->getOperand(1)), Op1);
784 Constant *NewRHS = ConstantExpr::get(I.getOpcode(),
785 cast<Constant>(Op0BO->getOperand(0)), Op1);
808 if (!isa<Constant>(FalseVal) && TBO->getOperand(0) == FalseVal &&
811 Constant *NewRHS = ConstantExpr::get(I.getOpcode(),
812 cast<Constant>(TBO->getOperand(1)), Op1);
827 if (!isa<Constant>(TrueVal) && FBO->getOperand(0) == TrueVal &&
830 Constant *NewRHS = ConstantExpr::get(I.getOpcode(),
831 cast<Constant>(FBO->getOperand(1)), Op1);
892 Constant *ShiftDiff = ConstantInt::get(Ty, ShAmt - ShrAmt);
900 Constant *ShiftDiff = ConstantInt::get(Ty, ShrAmt - ShAmt);
934 Constant *AllOnes = ConstantInt::getAllOnesValue(Ty);
939 Constant *C1;
941 Constant *C2;
953 auto *NewC = ConstantExpr::getShl(ConstantInt::get(Ty, 1), C1);
993 Constant *RHS = ConstantInt::getSigned(Ty, IsPop ? -1 : 0);
1003 Constant *ShiftDiff = ConstantInt::get(Ty, ShAmt - ShlAmt);
1017 Constant *ShiftDiff = ConstantInt::get(Ty, ShlAmt - ShAmt);
1088 Constant *AllOnes = ConstantInt::getAllOnesValue(Ty);
1114 Constant *C1, *C2;
1135 Constant *C0;
1199 Constant *ShiftDiff = ConstantInt::get(Ty, ShAmt - ShlAmt);
1206 Constant *ShiftDiff = ConstantInt::get(Ty, ShlAmt - ShAmt);
lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp 128 if (isa<Constant>(V)) {
182 return Constant::getIntegerValue(VTy, IKnownOne);
216 return Constant::getIntegerValue(VTy, IKnownOne);
250 return Constant::getIntegerValue(VTy, IKnownOne);
275 Constant *AndC = Constant::getIntegerValue(VTy,
275 Constant *AndC = Constant::getIntegerValue(VTy,
299 Constant *AndC =
304 Constant *XorC =
755 return Constant::getIntegerValue(VTy, Known.One);
792 return Constant::getIntegerValue(ITy, IKnownOne);
823 return Constant::getIntegerValue(ITy, IKnownOne);
855 return Constant::getIntegerValue(ITy, IKnownOne);
877 return Constant::getIntegerValue(ITy, Known.One);
948 Constant *Amt = ConstantInt::get(VarX->getType(), ShlAmt - ShrAmt);
954 Constant *Amt = ConstantInt::get(VarX->getType(), ShrAmt - ShlAmt);
1110 if (auto *C = dyn_cast<Constant>(V)) {
1110 if (auto *C = dyn_cast<Constant>(V)) {
1117 Constant *Undef = UndefValue::get(EltTy);
1118 SmallVector<Constant*, 16> Elts;
1126 Constant *Elt = C->getAggregateElement(i);
1138 Constant *NewCV = ConstantVector::get(Elts);
1313 Constant *Value = nullptr;
1342 SmallVector<Constant*, 16> Elts;
1374 Constant *CElt = CV->getAggregateElement(i);
1473 Constant *CElt = CV->getAggregateElement(i);
lib/Transforms/InstCombine/InstCombineVectorOps.cpp 54 if (auto *C = dyn_cast<Constant>(V))
54 if (auto *C = dyn_cast<Constant>(V))
402 if (isa<Constant>(IE->getOperand(2)) && IndexC) {
446 SmallVectorImpl<Constant*> &Mask) {
539 SmallVector<Constant *, 16> ExtendMask;
607 SmallVectorImpl<Constant *> &Mask,
801 Constant *Zero = ConstantInt::get(Int32Ty, 0);
806 SmallVector<Constant *, 16> Mask(NumElements, Zero);
838 SmallVector<Constant *, 16> NewMaskVec(NumMaskElts);
840 Constant *Zero = ConstantInt::getNullValue(I32Ty);
844 Constant *NewMask = ConstantVector::get(NewMaskVec);
874 SmallVector<Constant *, 16> NewMaskVec(NumMaskElts);
876 Constant *NewMaskEltC = ConstantInt::get(I32Ty, IdxC);
877 Constant *OldMask = Shuf->getMask();
893 Constant *NewMask = ConstantVector::get(NewMaskVec);
913 Constant *ScalarC;
916 match(InsElt1->getOperand(1), m_Value(Y)) && !isa<Constant>(Y) &&
938 Constant *ShufConstVec, *InsEltScalar;
961 Constant *Mask = Shuf->getMask();
963 SmallVector<Constant *, 16> NewShufElts(NumElts);
964 SmallVector<Constant *, 16> NewMaskElts(NumElts);
988 Constant *Val[2];
994 SmallVector<Constant *, 16> Values(NumElts);
995 SmallVector<Constant *, 16> Mask(NumElts);
1082 SmallVector<Constant*, 16> Mask;
1129 if (isa<Constant>(V))
1301 if (Constant *C = dyn_cast<Constant>(V)) {
1301 if (Constant *C = dyn_cast<Constant>(V)) {
1302 SmallVector<Constant *, 16> MaskValues;
1449 Constant *C;
1451 Constant *ShlOne = ConstantExpr::getShl(ConstantInt::get(Ty, 1), C);
1475 Constant *C;
1489 Constant *IdC = ConstantExpr::getBinOpIdentity(BOpcode, Shuf.getType(), true);
1497 Constant *Mask = Shuf.getMask();
1498 Constant *NewC = Op0IsBinop ? ConstantExpr::getShuffleVector(C, IdC, Mask) :
1528 Constant *Mask = Shuf.getMask();
1540 Constant *Zero = Builder.getInt32(0);
1548 SmallVector<Constant *, 16> NewMask(NumMaskElts, Zero);
1581 Constant *C0, *C1;
1605 C0 = cast<Constant>(AltB0.Op1);
1609 C1 = cast<Constant>(AltB1.Op1);
1620 Constant *Mask = Shuf.getMask();
1621 Constant *NewC = ConstantExpr::getShuffleVector(C0, C1, Mask);
1723 Constant *Mask;
1744 SmallVector<Constant *, 16> NewMask(NumElts);
1749 Constant *ExtractMaskElt = Shuf.getMask()->getAggregateElement(i);
1750 Constant *MaskElt = Mask->getAggregateElement(i);
1858 SmallVector<Constant *, 16> NewMask(Mask.size(), UndefValue::get(I32Ty));
1902 SmallVector<Constant*, 16> Elts;
2028 SmallVector<Constant *, 16> ShuffleMask(SrcNumElems,
2225 SmallVector<Constant*, 16> Elts;
lib/Transforms/InstCombine/InstructionCombining.cpp 274 Constant *C1, *C2;
286 Constant *CastC2 = ConstantExpr::getCast(CastOpcode, C2, DestTy);
287 Constant *FoldedC = ConstantExpr::get(AssocOpcode, C1, CastC2);
433 Constant *C1, *C2;
510 if (isa<Constant>(V))
528 Constant *C;
811 Constant *Elt = CV->getAggregateElement(i);
835 bool ConstIsRHS = isa<Constant>(I.getOperand(1));
836 Constant *ConstOperand = cast<Constant>(I.getOperand(ConstIsRHS));
836 Constant *ConstOperand = cast<Constant>(I.getOperand(ConstIsRHS));
838 if (auto *SOC = dyn_cast<Constant>(SO)) {
838 if (auto *SOC = dyn_cast<Constant>(SO)) {
864 if (!(isa<Constant>(TV) || isa<Constant>(FV)))
864 if (!(isa<Constant>(TV) || isa<Constant>(FV)))
909 bool ConstIsRHS = isa<Constant>(I->getOperand(1));
910 Constant *C = cast<Constant>(I->getOperand(ConstIsRHS));
910 Constant *C = cast<Constant>(I->getOperand(ConstIsRHS));
912 if (auto *InC = dyn_cast<Constant>(InV)) {
912 if (auto *InC = dyn_cast<Constant>(InV)) {
955 if (isa<Constant>(InVal) && !isa<ConstantExpr>(InVal))
1009 Constant *InC = dyn_cast<Constant>(PN->getIncomingValue(i));
1009 Constant *InC = dyn_cast<Constant>(PN->getIncomingValue(i));
1032 Constant *C = cast<Constant>(I.getOperand(1));
1032 Constant *C = cast<Constant>(I.getOperand(1));
1035 if (Constant *InC = dyn_cast<Constant>(PN->getIncomingValue(i)))
1035 if (Constant *InC = dyn_cast<Constant>(PN->getIncomingValue(i)))
1056 if (Constant *InC = dyn_cast<Constant>(PN->getIncomingValue(i)))
1056 if (Constant *InC = dyn_cast<Constant>(PN->getIncomingValue(i)))
1075 if (!isa<Constant>(I.getOperand(1)))
1415 Constant *Mask;
1488 Constant *C;
1501 bool ConstOp1 = isa<Constant>(RHS);
1506 SmallVector<Constant *, 16> NewVecC(SrcVecNumElts, UndefScalar);
1509 Constant *CElt = C->getAggregateElement(I);
1512 Constant *NewCElt = NewVecC[ShMask[I]];
1534 Constant *MaybeUndef =
1544 Constant *NewC = ConstantVector::get(NewVecC);
1588 Constant *WideC;
1591 Constant *NarrowC = ConstantExpr::getTrunc(WideC, X->getType());
1670 if (!isa<Constant>(*I) || !match(I->get(), m_Zero())) {
1671 *I = Constant::getNullValue(NewIndexType);
1895 } else if (isa<Constant>(*GEP.idx_begin()) &&
1896 cast<Constant>(*GEP.idx_begin())->isNullValue() &&
2039 Value *Idx[2] = { Constant::getNullValue(IdxType), GEP.getOperand(1) };
2118 Value *Off[2] = {Constant::getNullValue(IndTy), NewIdx};
2552 RI.setOperand(0, Constant::getIntegerValue(VTy, Known.getConstant()));
2561 !isa<Constant>(X)) {
2599 Constant *NewCase = ConstantExpr::getSub(Case.getCaseValue(), AddRHS);
2771 static bool isCatchAll(EHPersonality Personality, Constant *TypeInfo) {
2815 SmallVector<Constant *, 16> NewClauses; // - Clauses for the new instruction;
2823 Constant *CatchClause = LI.getClause(i);
2824 Constant *TypeInfo = CatchClause->stripPointerCasts();
2853 Constant *FilterClause = LI.getClause(i);
2869 SmallVector<Constant *, 16> NewFilterElts; // New elements.
2873 Constant *TypeInfo =
2874 Constant::getNullValue(FilterType->getElementType());
2897 Constant *Elt = Filter->getOperand(j);
2898 Constant *TypeInfo = Elt->stripPointerCasts();
2925 NewFilterElts.push_back(cast<Constant>(Elt));
3017 SmallVectorImpl<Constant *>::iterator J = NewClauses.begin() + j;
3225 (I->getNumOperands() == 0 || isa<Constant>(I->getOperand(0)))) {
3226 if (Constant *C = ConstantFoldInstruction(I, DL, &TLI)) {
3246 Constant *C = ConstantInt::get(Ty, Known.getConstant());
3379 DenseMap<Constant *, Constant *> FoldedConstants;
3379 DenseMap<Constant *, Constant *> FoldedConstants;
3404 (Inst->getNumOperands() == 0 || isa<Constant>(Inst->getOperand(0))))
3405 if (Constant *C = ConstantFoldInstruction(Inst, DL, TLI)) {
3421 auto *C = cast<Constant>(U);
3421 auto *C = cast<Constant>(U);
3422 Constant *&FoldRes = FoldedConstants[C];
lib/Transforms/Instrumentation/AddressSanitizer.cpp 682 Constant *AsanShadowGlobal;
772 ArrayRef<Constant *> MetadataInitializers);
775 ArrayRef<Constant *> MetadataInitializers,
779 ArrayRef<Constant *> MetadataInitializers);
783 ArrayRef<Constant *> MetadataInitializers);
785 GlobalVariable *CreateMetadataGlobal(Module &M, Constant *Initializer,
1132 auto *V = mdconst::extract_or_null<Constant>(MDN->getOperand(0));
1132 auto *V = mdconst::extract_or_null<Constant>(MDN->getOperand(0));
1136 auto *StrippedV = V->stripPointerCasts();
1252 Constant *LocData[] = {
1699 Value *CmpVal = Constant::getNullValue(ShadowTy);
2018 ModuleAddressSanitizer::CreateMetadataGlobal(Module &M, Constant *Initializer,
2041 ArrayRef<Constant *> MetadataInitializers) {
2046 Constant *Initializer = MetadataInitializers[i];
2065 ArrayRef<Constant *> MetadataInitializers,
2124 ArrayRef<Constant *> MetadataInitializers) {
2134 Constant *Initializer = MetadataInitializers[i];
2181 ArrayRef<Constant *> MetadataInitializers) {
2245 SmallVector<Constant *, 16> Initializers(n);
2282 Constant *NewInitializer = ConstantStruct::get(
2283 NewTy, G->getInitializer(), Constant::getNullValue(RightRedZoneTy));
2325 Constant *SourceLoc;
2333 Constant *ODRIndicator = ConstantExpr::getNullValue(IRB.getInt8PtrTy());
2355 Constant::getNullValue(IRB.getInt8Ty()),
2366 Constant *Initializer = ConstantStruct::get(
2952 IRB.CreateStore(Constant::getNullValue(IntptrTy), DynamicAllocaLayout);
3083 Constant *OptionDetectUseAfterReturn = F.getParent()->getOrInsertGlobal(
3087 Constant::getNullValue(IRB.getInt32Ty()));
3103 IRB.CreateICmpEQ(FakeStack, Constant::getNullValue(IntptrTy));
3205 IRBRet.CreateICmpNE(FakeStack, Constant::getNullValue(IntptrTy));
3222 Constant::getNullValue(IRBPoison.getInt8Ty()),
3266 Value *Zero = Constant::getNullValue(IntptrTy);
lib/Transforms/Instrumentation/DataFlowSanitizer.cpp 331 Constant *ArgTLS;
332 Constant *RetvalTLS;
337 Constant *GetArgTLS;
338 Constant *GetRetvalTLS;
339 Constant *ExternalShadowMask;
371 Constant *getOrBuildTrampolineFunction(FunctionType *FT, StringRef FName);
680 Constant *DataFlowSanitizer::getOrBuildTrampolineFunction(FunctionType *FT,
709 return cast<Constant>(C.getCallee());
1602 Constant *T = DFSF.DFS.getOrBuildTrampolineFunction(ParamFT, TName);
lib/Transforms/Instrumentation/GCOVProfiling.cpp 804 Constant::getNullValue(CounterTy),
983 Constant *Zero32 = Builder.getInt32(0);
985 Constant *TwoZero32s[] = {Zero32, Zero32};
987 SmallVector<Constant *, 8> FileInfos;
997 auto *StartFileCallArgs = ConstantStruct::get(
1002 SmallVector<Constant *, 8> EmitFunctionCallArgsArray;
1003 SmallVector<Constant *, 8> EmitArcsCallArgsArray;
1012 : Constant::getNullValue(Builder.getInt8PtrTy()),
1215 Constant *Null = Constant::getNullValue(GV->getValueType());
1215 Constant *Null = Constant::getNullValue(GV->getValueType());
lib/Transforms/Instrumentation/HWAddressSanitizer.cpp 289 Constant *ShadowGlobal;
422 Constant *C = M.getOrInsertGlobal("__hwasan_tls", IntptrTy, [&] {
842 GetStackPointerFn, {Constant::getNullValue(IRB.getInt32Ty())});
979 {Constant::getNullValue(IRB.getInt32Ty())}),
1248 Constant *Initializer = GV->getInitializer();
1257 Constant *Padding = ConstantDataArray::get(*C, Init);
1293 auto *GVRelPtr = ConstantExpr::getTrunc(
1301 auto *SizeAndTag = ConstantInt::get(Int32Ty, Size | (uint32_t(Tag) << 24));
1310 Constant *Aliasee = ConstantExpr::getIntToPtr(
1364 auto *Name = ConstantDataArray::get(*C, "LLVM\0\0\0");
1395 Constant::getNullValue(Int8Arr0Ty), "hwasan.dummy.global");
1442 MapVector<Constant *, std::vector<Function *>> PersonalityFns;
1487 : Constant::getNullValue(Int8PtrTy),
lib/Transforms/Instrumentation/InstrOrderFile.cpp 83 Constant::getNullValue(BufferTy), SymbolName);
90 Constant::getNullValue(IdxTy), IndexName);
94 Constant::getNullValue(MapTy), BitMapName);
lib/Transforms/Instrumentation/InstrProfiling.cpp 661 Constant *NC = Names->getOperand(I);
783 Constant::getNullValue(CounterTy),
795 Constant *ValuesPtrExpr = ConstantPointerNull::get(Int8PtrTy);
805 Constant::getNullValue(ValuesTy),
826 Constant *FunctionAddr = shouldRecordFunctionAddr(Fn)
830 Constant *Int16ArrayVals[IPVK_Last + 1];
834 Constant *DataVals[] = {
904 Constant::getNullValue(VNodesTy), getInstrProfVNodesVarName());
923 auto *NamesVal = ConstantDataArray::getString(
lib/Transforms/Instrumentation/Instrumentation.cpp 63 Constant *StrConst = ConstantDataArray::getString(M.getContext(), Str);
lib/Transforms/Instrumentation/MemorySanitizer.cpp 684 Constant *StrConst = ConstantDataArray::getString(M.getContext(), Str);
748 static Constant *getOrInsertGlobal(Module &M, StringRef Name, Type *Ty) {
1129 Constant *ConstantShadow = dyn_cast_or_null<Constant>(ConvertedShadow);
1129 Constant *ConstantShadow = dyn_cast_or_null<Constant>(ConvertedShadow);
1210 Constant *ConstantShadow = dyn_cast_or_null<Constant>(ConvertedShadow);
1210 Constant *ConstantShadow = dyn_cast_or_null<Constant>(ConvertedShadow);
1257 Constant *Zero = IRB.getInt32(0);
1526 Constant *getCleanShadow(Type *OrigTy) {
1530 return Constant::getNullValue(ShadowTy);
1537 Constant *getCleanShadow(Value *V) {
1542 Constant *getPoisonedShadow(Type *ShadowTy) {
1545 return Constant::getAllOnesValue(ShadowTy);
1547 SmallVector<Constant *, 4> Vals(AT->getNumElements(),
1552 SmallVector<Constant *, 4> Vals;
1561 Constant *getPoisonedShadow(Value *V) {
1570 return Constant::getNullValue(MS.OriginTy);
1635 CpShadowPtr, Constant::getNullValue(EntryIRB.getInt8Ty()),
1682 if (isa<Constant>(V)) return getCleanOrigin();
2026 Constant *ConstOrigin = dyn_cast<Constant>(OpOrigin);
2026 Constant *ConstOrigin = dyn_cast<Constant>(OpOrigin);
2135 void handleMulByConstant(BinaryOperator &I, Constant *ConstArg,
2137 Constant *ShadowMul;
2142 SmallVector<Constant *, 16> Elements;
2171 Constant *constOp0 = dyn_cast<Constant>(I.getOperand(0));
2171 Constant *constOp0 = dyn_cast<Constant>(I.getOperand(0));
2172 Constant *constOp1 = dyn_cast<Constant>(I.getOperand(1));
2172 Constant *constOp1 = dyn_cast<Constant>(I.getOperand(1));
2233 Value *Zero = Constant::getNullValue(Sc->getType());
2234 Value *MinusOne = Constant::getAllOnesValue(Sc->getType());
2316 Constant *constOp;
2319 if ((constOp = dyn_cast<Constant>(I.getOperand(1)))) {
2322 } else if ((constOp = dyn_cast<Constant>(I.getOperand(0)))) {
2365 if ((isa<Constant>(I.getOperand(0)) || isa<Constant>(I.getOperand(1)))) {
2365 if ((isa<Constant>(I.getOperand(0)) || isa<Constant>(I.getOperand(1)))) {
2794 IRB.CreateICmpNE(S1, Constant::getNullValue(T)), T);
2796 IRB.CreateICmpNE(S2, Constant::getNullValue(T)), T);
2824 S = IRB.CreateSExt(IRB.CreateICmpNE(S, Constant::getNullValue(ResTy)),
2840 S = IRB.CreateSExt(IRB.CreateICmpNE(S, Constant::getNullValue(ResTy)),
2855 IRB.CreateICmpNE(S0, Constant::getNullValue(ResTy)), ResTy);
2975 IRB.CreateICmpNE(Acc, Constant::getNullValue(Acc->getType())),
3333 Constant *Cst = dyn_cast<Constant>(ArgShadow);
3333 Constant *Cst = dyn_cast<Constant>(ArgShadow);
3878 Constant *OverflowSize =
3917 IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()),
4041 Constant *TotalVAArgSize = ConstantInt::get(IRB.getInt64Ty(), VAArgOffset);
4067 IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()),
4079 IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()),
4211 Constant *OverflowSize =
4236 IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()),
4248 IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()),
4476 Constant *TotalVAArgSize = ConstantInt::get(IRB.getInt64Ty(),
4503 IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()),
4516 IRB.CreateMemSet(ShadowPtr, Constant::getNullValue(IRB.getInt8Ty()),
lib/Transforms/Instrumentation/PoisonChecking.cpp 227 if (isa<Constant>(V)) {
lib/Transforms/Instrumentation/SanitizerCoverage.cpp 429 Constant *SanCovLowestStackConstant =
440 SanCovLowestStack->setInitializer(Constant::getAllOnesValue(IntptrTy));
648 Constant::getNullValue(ArrayTy), "__sancov_gen_");
671 SmallVector<Constant *, 32> PCs;
749 SmallVector<Constant *, 16> Initializers;
761 Constant *C = It.getCaseValue();
895 IRB.CreateCall(GetFrameAddr, {Constant::getNullValue(Int32Ty)});
lib/Transforms/ObjCARC/ObjCARCOpts.cpp 805 Constant::getNullValue(Ty),
826 Constant::getNullValue(Ty),
1845 bool KnownSafe = isa<Constant>(Arg) || isa<AllocaInst>(Arg);
lib/Transforms/Scalar/ADCE.cpp 348 if (isa<Constant>(CI->getArgOperand(0)))
lib/Transforms/Scalar/CallSiteSplitting.cpp 96 Constant *ConstValue) {
116 if (isa<Constant>(*I) || CS.paramHasAttr(ArgNo, Attribute::NonNull))
169 Constant *ConstVal = cast<Constant>(Cond.first->getOperand(1));
169 Constant *ConstVal = cast<Constant>(Cond.first->getOperand(1));
435 if (isa<Constant>(PN->getIncomingValue(0)) &&
436 isa<Constant>(PN->getIncomingValue(1)))
lib/Transforms/Scalar/ConstantHoisting.cpp 628 Constant *Offset = Diff == 0 ? nullptr : ConstantInt::get(Ty, Diff);
729 Constant *Offset,
842 using RebasedUse = std::tuple<Constant *, Type *, ConstantUser>;
885 Constant *Off = std::get<0>(R);
lib/Transforms/Scalar/ConstantProp.cpp 93 if (Constant *C = ConstantFoldInstruction(I, DL, TLI)) {
lib/Transforms/Scalar/CorrelatedValuePropagation.cpp 127 if (isa<Constant>(S->getOperand(0))) return false;
129 Constant *C = LVI->getConstant(S->getCondition(), S->getParent(), S);
162 SmallVector<std::pair<Constant *, unsigned>, 4> IncomingConstants;
166 if (auto *IncomingConstant = dyn_cast<Constant>(Incoming)) {
166 if (auto *IncomingConstant = dyn_cast<Constant>(Incoming)) {
190 Constant *C = IncomingConstant.first;
218 if (isa<Constant>(Incoming)) continue;
232 if (Constant *C = LVI->getConstantOnEdge(
249 Constant *C = dyn_cast<Constant>(SI->getFalseValue());
249 Constant *C = dyn_cast<Constant>(SI->getFalseValue());
288 if (isa<Constant>(Pointer)) return false;
290 Constant *C = LVI->getConstant(Pointer, I->getParent(), I);
304 auto *C = dyn_cast<Constant>(Cmp->getOperand(1));
304 auto *C = dyn_cast<Constant>(Cmp->getOperand(1));
323 Constant *TorF = ConstantInt::get(Type::getInt1Ty(Cmp->getContext()), Result);
505 Constant *Struct = ConstantStruct::get(ST,
568 if (isa<Constant>(V)) continue;
570 Constant *C = LVI->getConstant(V, CS.getParent(), CS.getInstruction());
585 !isa<Constant>(V) &&
608 Constant *Zero = ConstantInt::get(SDI->getType(), 0);
703 Constant *Zero = ConstantInt::get(SDI->getType(), 0);
725 Constant *Zero = ConstantInt::get(Base->getType(), 0);
806 static Constant *getConstantAt(Value *V, Instruction *At, LazyValueInfo *LVI) {
807 if (Constant *C = LVI->getConstant(V, At->getParent(), At))
816 Constant *Op1 = dyn_cast<Constant>(C->getOperand(1));
816 Constant *Op1 = dyn_cast<Constant>(C->getOperand(1));
900 if (isa<Constant>(RetVal)) break; // nothing to do
901 if (auto *C = getConstantAt(RetVal, RI, LVI)) {
lib/Transforms/Scalar/DeadStoreElimination.cpp 723 if (isa<Constant>(UnderlyingPointer))
1054 Constant *StoredConstant = dyn_cast<Constant>(SI->getValueOperand());
1054 Constant *StoredConstant = dyn_cast<Constant>(SI->getValueOperand());
lib/Transforms/Scalar/GVN.cpp 936 Res = AvailableValue::get(Constant::getNullValue(LI->getType()));
1410 Constant::getNullValue(Int8Ty->getPointerTo()),
1415 } else if (isa<Constant>(V)) {
1422 Constant *True = ConstantInt::getTrue(V->getContext());
1465 if (isa<Constant>(CmpLHS) && !isa<Constant>(CmpRHS))
1465 if (isa<Constant>(CmpLHS) && !isa<Constant>(CmpRHS))
1481 if (isa<Constant>(CmpLHS) && isa<Constant>(CmpRHS))
1481 if (isa<Constant>(CmpLHS) && isa<Constant>(CmpRHS))
1715 if (isa<Constant>(Val)) return Val;
1721 if (isa<Constant>(Next->Val)) return Next->Val;
1794 if (isa<Constant>(LHS) && isa<Constant>(RHS))
1794 if (isa<Constant>(LHS) && isa<Constant>(RHS))
1798 if (isa<Constant>(LHS) || (isa<Argument>(LHS) && !isa<Constant>(RHS)))
1798 if (isa<Constant>(LHS) || (isa<Argument>(LHS) && !isa<Constant>(RHS)))
1901 Constant *NotVal = ConstantInt::get(Cmp->getType(), isKnownFalse);
1987 if (isa<Constant>(BI->getCondition()))
2205 if (isa<Argument>(Op) || isa<Constant>(Op) || isa<GlobalValue>(Op))
lib/Transforms/Scalar/GVNHoist.cpp 314 if (isa<Constant>(V))
lib/Transforms/Scalar/GVNSink.cpp 303 return llvm::any_of(Values, [&](Value *V) { return isa<Constant>(V); });
lib/Transforms/Scalar/IndVarSimplify.cpp 2165 if (isa<Constant>(V))
2701 if (isa<Constant>(BI->getCondition()))
2741 auto *NewCond = ConstantInt::get(OldCond->getType(),
2850 if (isa<Constant>(BI->getCondition()))
lib/Transforms/Scalar/InferAddressSpaces.cpp 175 bool isSafeToCastConstAddrSpace(Constant *C, unsigned NewAS) const;
422 if (Constant *C = dyn_cast<Constant>(Operand))
422 if (Constant *C = dyn_cast<Constant>(Operand))
520 return ConstantExpr::getBitCast(cast<Constant>(NewOperand), TargetType);
525 Constant *Src0 = CE->getOperand(1);
526 Constant *Src1 = CE->getOperand(2);
538 SmallVector<Constant *, 4> NewOperands;
540 Constant *Operand = CE->getOperand(Index);
548 NewOperands.push_back(cast<Constant>(NewOperand));
555 NewOperands.push_back(cast<Constant>(NewOperand));
715 auto *C0 = dyn_cast<Constant>(Src0);
715 auto *C0 = dyn_cast<Constant>(Src0);
716 auto *C1 = dyn_cast<Constant>(Src1);
716 auto *C1 = dyn_cast<Constant>(Src1);
833 bool InferAddressSpaces::isSafeToCastConstAddrSpace(Constant *C, unsigned NewAS) const {
851 return isSafeToCastConstAddrSpace(cast<Constant>(Op->getOperand(0)), NewAS);
914 if (Constant *C = dyn_cast<Constant>(V)) {
914 if (Constant *C = dyn_cast<Constant>(V)) {
915 Constant *Replace = ConstantExpr::getAddrSpaceCast(cast<Constant>(NewV),
915 Constant *Replace = ConstantExpr::getAddrSpaceCast(cast<Constant>(NewV),
976 if (auto *KOtherSrc = dyn_cast<Constant>(OtherSrc)) {
976 if (auto *KOtherSrc = dyn_cast<Constant>(OtherSrc)) {
1011 U.set(ConstantExpr::getAddrSpaceCast(cast<Constant>(NewV),
lib/Transforms/Scalar/JumpThreading.cpp 573 static Constant *getKnownConstant(Value *Val, ConstantPreference Preference) {
606 if (Constant *KC = getKnownConstant(V, Preference)) {
638 Constant *PredCst = LVI->getConstantOnEdge(V, P, BB, CxtI);
639 if (Constant *KC = getKnownConstant(PredCst, Preference))
654 if (Constant *KC = getKnownConstant(InVal, Preference)) {
657 Constant *CI = LVI->getConstantOnEdge(InVal,
660 if (Constant *KC = getKnownConstant(CI, Preference))
756 Constant *V = LHSVal.first;
757 Constant *Folded = ConstantExpr::get(BO->getOpcode(), V, CI);
759 if (Constant *KC = getKnownConstant(Folded, WantInteger))
798 if (!isa<Constant>(RHS))
808 cast<Constant>(RHS), PredBB, BB,
815 if (Constant *KC = getKnownConstant(Res, WantInteger))
824 if (isa<Constant>(CmpRHS) && !CmpType->isVectorTy()) {
825 Constant *CmpConst = cast<Constant>(CmpRHS);
825 Constant *CmpConst = cast<Constant>(CmpRHS);
842 Constant *ResC = ConstantInt::get(CmpType, Res);
878 Constant *ResC;
901 Constant *V = LHSVal.first;
902 Constant *Folded = ConstantExpr::getCompare(Pred, V, CmpConst);
903 if (Constant *KC = getKnownConstant(Folded, WantInteger))
914 Constant *TrueVal = getKnownConstant(SI->getTrueValue(), Preference);
915 Constant *FalseVal = getKnownConstant(SI->getFalseValue(), Preference);
921 Constant *Cond = C.first;
937 if (Constant *Val = KnownCond ? TrueVal : FalseVal)
950 Constant *CI = LVI->getConstant(V, BB, CxtI);
951 if (Constant *KC = getKnownConstant(CI, Preference)) {
1143 Constant *CondConst = dyn_cast<Constant>(CondCmp->getOperand(1));
1143 Constant *CondConst = dyn_cast<Constant>(CondCmp->getOperand(1));
1176 auto *CI = Ret == LazyValueInfo::True ?
1203 if (isa<Constant>(CondCmp->getOperand(1)))
1623 Constant *OnlyVal = nullptr;
1624 Constant *MultipleVal = (Constant *)(intptr_t)~0ULL;
1631 Constant *Val = PredValue.first;
2500 Constant *CondRHS = cast<Constant>(CondCmp->getOperand(1));
2500 Constant *CondRHS = cast<Constant>(CondCmp->getOperand(1));
lib/Transforms/Scalar/LICM.cpp 831 if (Constant *C = ConstantFoldInstruction(
lib/Transforms/Scalar/LoopIdiomRecognize.cpp 433 static Constant *getMemSetPatternValue(Value *V, const DataLayout *DL) {
440 Constant *C = dyn_cast<Constant>(V);
440 Constant *C = dyn_cast<Constant>(V);
516 Constant *PatternValue = nullptr;
689 Constant *FirstPatternValue = nullptr;
722 Constant *SecondPatternValue = nullptr;
946 Constant *PatternValue = nullptr;
lib/Transforms/Scalar/LoopInterchange.cpp 632 if (isa<Constant>(Val))
lib/Transforms/Scalar/LoopStrengthReduce.cpp 2138 Constant *NewInit = ConstantFP::get(DestTy, IsSigned ?
2168 Constant *CFP = ConstantFP::get(DestTy, C->getZExtValue());
5288 Constant *C = ConstantInt::getSigned(SE.getEffectiveSCEVType(OpTy),
lib/Transforms/Scalar/LoopUnrollPass.cpp 356 DenseMap<Value *, Constant *> SimplifiedValues;
357 SmallVector<std::pair<Value *, Constant *>, 4> SimplifiedInputValues;
491 Constant *C = dyn_cast<Constant>(V);
491 Constant *C = dyn_cast<Constant>(V);
569 if (Constant *SimpleCond =
580 if (Constant *SimpleCond =
lib/Transforms/Scalar/LoopUnswitch.cpp 247 bool UnswitchIfProfitable(Value *LoopCond, Constant *Val,
249 void UnswitchTrivialCondition(Loop *L, Value *Cond, Constant *Val,
251 void UnswitchNontrivialCondition(Value *LIC, Constant *OnVal, Loop *L,
255 Constant *Val, bool isEqual);
257 void EmitPreheaderBranchOnCondition(Value *LIC, Constant *Val,
267 Constant *Val);
437 if (isa<Constant>(Cond)) return nullptr;
761 Constant *UnswitchVal = nullptr;
767 auto *AllZero = cast<ConstantInt>(Constant::getNullValue(SC->getType()));
775 auto *AllOne = cast<ConstantInt>(Constant::getAllOnesValue(SC->getType()));
787 Constant *UnswitchValCandidate = Case.getCaseValue();
880 bool LoopUnswitch::UnswitchIfProfitable(Value *LoopCond, Constant *Val,
932 void LoopUnswitch::EmitPreheaderBranchOnCondition(Value *LIC, Constant *Val,
999 void LoopUnswitch::UnswitchTrivialCondition(Loop *L, Value *Cond, Constant *Val,
1122 Constant *CondVal = nullptr;
1233 void LoopUnswitch::UnswitchNontrivialCondition(Value *LIC, Constant *Val,
1398 LICHandle && !isa<Constant>(LICHandle))
1443 Constant *Val,
1656 Constant *Val) {
lib/Transforms/Scalar/LowerConstantIntrinsics.cpp 45 return isa<Constant>(Op) ? ConstantInt::getTrue(II->getType())
lib/Transforms/Scalar/NewGVN.cpp 681 const ConstantExpression *createConstantExpression(Constant *) const;
973 return isa<Constant>(V) || isa<Argument>(V);
1004 OriginalOpsConstant = OriginalOpsConstant && isa<Constant>(P.first);
1030 AllConstant = AllConstant && isa<Constant>(Operand);
1070 if (auto *C = dyn_cast<Constant>(V)) {
1070 if (auto *C = dyn_cast<Constant>(V)) {
1157 if (isa<Constant>(E->getOperand(0)) ||
1189 SmallVector<Constant *, 8> C;
1191 C.emplace_back(cast<Constant>(Arg));
1233 if (auto *C = dyn_cast<Constant>(V))
1233 if (auto *C = dyn_cast<Constant>(V))
1238 const ConstantExpression *NewGVN::createConstantExpression(Constant *C) const {
1428 if (auto *C = dyn_cast<Constant>(
1428 if (auto *C = dyn_cast<Constant>(
1443 if (auto *C = dyn_cast<Constant>(lookupOperandLeader(DepLI)))
1443 if (auto *C = dyn_cast<Constant>(lookupOperandLeader(DepLI)))
1444 if (auto *PossibleConstant =
1454 if (auto *PossibleConstant =
1484 return createConstantExpression(Constant::getNullValue(LoadType));
1560 return createConstantExpression(cast<Constant>(PSwitch->CaseValue));
1621 return createConstantExpression(cast<Constant>(FirstOp));
1959 if (auto *C = dyn_cast<Constant>(V))
1959 if (auto *C = dyn_cast<Constant>(V))
2466 return isa<Constant>(Result) ? Result : nullptr;
3702 Constant::getNullValue(Int8Ty->getPointerTo()),
4147 if (isa<Constant>(V))
lib/Transforms/Scalar/Reassociate.cpp 226 if (LHS == RHS || isa<Constant>(RHS))
228 if (isa<Constant>(LHS) || getRank(RHS) < getRank(LHS))
274 Constant *NegOne = Ty->isIntOrIntVectorTy() ?
278 Neg->setOperand(OpNo, Constant::getNullValue(Ty)); // Drop use of op.
624 Constant *Identity = ConstantExpr::getBinOpIdentity(Opcode, I->getType());
759 Constant *Undef = UndefValue::get(I->getType());
817 if (auto *C = dyn_cast<Constant>(V))
817 if (auto *C = dyn_cast<Constant>(V))
961 Sub->setOperand(0, Constant::getNullValue(Sub->getType())); // Drop use of op.
962 Sub->setOperand(1, Constant::getNullValue(Sub->getType())); // Drop use of op.
976 Constant *MulCst = ConstantInt::get(Shl->getType(), 1);
977 MulCst = ConstantExpr::getShl(MulCst, cast<Constant>(Shl->getOperand(1)));
1143 return Constant::getNullValue(X->getType());
1146 return Constant::getAllOnesValue(X->getType());
1165 return Constant::getNullValue(Ops[0].Op->getType());
1460 Constant *C = Ty->isIntOrIntVectorTy() ?
1496 return Constant::getNullValue(X->getType());
1500 return Constant::getAllOnesValue(X->getType());
1514 Value *V = Constant::getAllOnesValue(X->getType());
1837 Constant *Cst = nullptr;
1839 while (!Ops.empty() && isa<Constant>(Ops.back().Op)) {
1840 Constant *C = cast<Constant>(Ops.pop_back_val().Op);
1840 Constant *C = cast<Constant>(Ops.pop_back_val().Op);
lib/Transforms/Scalar/Reg2Mem.cpp 86 Constant::getNullValue(Type::getInt32Ty(F.getContext())),
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp 442 if (isa<Constant>(I))
504 if (isa<Constant>(I)) {
1781 Constant *CPN = ConstantPointerNull::get(PT);
2288 if (isa<Constant>(BasePair.second))
2654 if (isHandledGCPointerType(V->getType()) && !isa<Constant>(V)) {
2681 if (isHandledGCPointerType(V->getType()) && !isa<Constant>(V))
lib/Transforms/Scalar/SCCP.cpp 100 PointerIntPair<Constant *, 2, LatticeValueTy> Val;
117 Constant *getConstant() const {
132 bool markConstant(Constant *V) {
172 void markForcedConstant(Constant *V) {
433 bool markConstant(LatticeVal &IV, Value *V, Constant *C) {
440 bool markConstant(Value *V, Constant *C) {
445 void markForcedConstant(Value *V, Constant *C) {
499 if (auto *C = dyn_cast<Constant>(V)) {
499 if (auto *C = dyn_cast<Constant>(V)) {
537 if (auto *C = dyn_cast<Constant>(V)) {
537 if (auto *C = dyn_cast<Constant>(V)) {
538 Constant *Elt = C->getAggregateElement(i);
800 Constant *OperandVal = nullptr;
878 Constant *C = ConstantFoldCastOperand(I.getOpcode(), OpSt.getConstant(),
983 Constant *C = ConstantExpr::get(I.getOpcode(), V0State.getConstant());
1007 Constant *C = ConstantExpr::get(I.getOpcode(), V1State.getConstant(),
1082 Constant *C = V1State.getCompare(I.getPredicate(), I.getType(), V2State);
1105 SmallVector<Constant*, 8> Operands;
1120 Constant *Ptr = Operands[0];
1122 Constant *C =
1163 Constant *Ptr = PtrVal.getConstant();
1187 if (Constant *C = ConstantFoldLoadFromConstPtr(Ptr, I.getType(), DL)) {
1273 SmallVector<Constant*, 8> Operands;
1293 if (Constant *C = ConstantFoldCall(cast<CallBase>(CS.getInstruction()), F,
1526 markForcedConstant(&I, Constant::getNullValue(ITy));
1542 markForcedConstant(&I, Constant::getNullValue(ITy));
1551 markForcedConstant(&I, Constant::getNullValue(ITy));
1558 markForcedConstant(&I, Constant::getAllOnesValue(ITy));
1565 markForcedConstant(&I, Constant::getNullValue(ITy));
1585 markForcedConstant(&I, Constant::getNullValue(ITy));
1600 markForcedConstant(&I, Constant::getNullValue(ITy));
1618 markForcedConstant(&I, Constant::getNullValue(ITy));
1753 Constant *Const = nullptr;
1759 std::vector<Constant *> ConstVals;
1973 Constant *C = nullptr;
lib/Transforms/Scalar/SROA.cpp 2068 if (MI->isVolatile() || !isa<Constant>(MI->getLength()))
2200 SmallVector<Constant *, 8> Mask;
2236 SmallVector<Constant *, 8> Mask;
2741 Constant::getAllOnesValue(SplatIntTy),
2742 ConstantExpr::getZExt(Constant::getAllOnesValue(V->getType()),
2764 if (!isa<Constant>(II.getLength())) {
2800 Constant *Size = ConstantInt::get(SizeTy, NewEndOffset - NewBeginOffset);
2972 Constant *Size = ConstantInt::get(SizeTy, NewEndOffset - NewBeginOffset);
lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp 619 if (Constant *C = dyn_cast<Constant>(Current)) {
619 if (Constant *C = dyn_cast<Constant>(Current)) {
lib/Transforms/Scalar/SimpleLoopUnswitch.cpp 118 if (isa<Constant>(OpV))
142 Constant &Replacement) {
888 if (isa<Constant>(SI->getCondition()))
918 if (!BI->isConditional() || isa<Constant>(BI->getCondition()))
2551 if (!isa<Constant>(Cond) && L.isLoopInvariant(Cond))
2558 if (!isa<Constant>(SI->getCondition()) &&
2565 if (!BI || !BI->isConditional() || isa<Constant>(BI->getCondition()) ||
lib/Transforms/Scalar/SpeculateAroundPHIs.cpp 685 isa<Constant>(NewI->getOperand(0)) &&
686 !isa<Constant>(NewI->getOperand(1)))
lib/Transforms/Scalar/StraightLineStrengthReduce.cpp 617 Constant *Delta = ConstantInt::get(DeltaType, IndexOffset);
lib/Transforms/Scalar/StructurizeCFG.cpp 405 if (Constant *C = dyn_cast<Constant>(Condition))
405 if (Constant *C = dyn_cast<Constant>(Condition))
lib/Transforms/Scalar/TailRecursionElimination.cpp 255 if (isa<Constant>(Arg.getUser()))
363 if (isa<Constant>(V)) return true; // Static constants are always dyn consts
lib/Transforms/Utils/CanonicalizeAliases.cpp 42 static Constant *canonicalizeAlias(Constant *C, bool &Changed) {
42 static Constant *canonicalizeAlias(Constant *C, bool &Changed) {
44 auto *NewAliasee = canonicalizeAlias(GA->getAliasee(), Changed);
56 std::vector<Constant *> Ops;
58 Ops.push_back(canonicalizeAlias(cast<Constant>(U), Changed));
lib/Transforms/Utils/CloneFunction.cpp 182 Constant *OldBBAddr = BlockAddress::get(const_cast<Function*>(OldFunc),
324 Constant *OldBBAddr = BlockAddress::get(const_cast<Function*>(OldFunc),
lib/Transforms/Utils/CloneModule.cpp 179 if (const Constant *C = I->getAliasee())
lib/Transforms/Utils/CodeExtractor.cpp 333 if (dyn_cast<Constant>(MemAddr))
934 Idx[0] = Constant::getNullValue(Type::getInt32Ty(header->getContext()));
1118 Idx[0] = Constant::getNullValue(Type::getInt32Ty(Context));
1157 Idx[0] = Constant::getNullValue(Type::getInt32Ty(Context));
1180 SwitchInst::Create(Constant::getNullValue(Type::getInt16Ty(Context)),
1260 Idx[0] = Constant::getNullValue(Type::getInt32Ty(Context));
1293 Constant::getNullValue(OldFnRetTy), TheSwitch);
lib/Transforms/Utils/CtorUtils.cpp 30 SmallVector<Constant *, 10> CAList;
38 Constant *CA = ConstantArray::get(ATy, CAList);
55 Constant *V = NGV;
lib/Transforms/Utils/EscapeEnumerator.cpp 72 F.setPersonalityFn(cast<Constant>(PersFn.getCallee()));
lib/Transforms/Utils/Evaluator.cpp 48 isSimpleEnoughValueToCommit(Constant *C,
49 SmallPtrSetImpl<Constant *> &SimpleConstants,
61 isSimpleEnoughValueToCommitHelper(Constant *C,
62 SmallPtrSetImpl<Constant *> &SimpleConstants,
76 if (!isSimpleEnoughValueToCommit(cast<Constant>(Op), SimpleConstants, DL))
116 isSimpleEnoughValueToCommit(Constant *C,
117 SmallPtrSetImpl<Constant *> &SimpleConstants,
131 static bool isSimpleEnoughPointerToCommit(Constant *C) {
181 static Constant *
182 evaluateBitcastFromPtr(Constant *Ptr, const DataLayout &DL,
184 std::function<Constant *(Constant *)> Func) {
184 std::function<Constant *(Constant *)> Func) {
185 Constant *Val;
195 Constant *IdxZero = ConstantInt::get(IdxTy, 0, false);
196 Constant *const IdxList[] = {IdxZero, IdxZero};
199 if (auto *FoldedPtr = ConstantFoldConstant(Ptr, DL, TLI))
205 static Constant *getInitializer(Constant *C) {
205 static Constant *getInitializer(Constant *C) {
212 Constant *Evaluator::ComputeLoadResult(Constant *P) {
212 Constant *Evaluator::ComputeLoadResult(Constant *P) {
216 DenseMap<Constant *, Constant *>::const_iterator I =
216 DenseMap<Constant *, Constant *>::const_iterator I =
221 if (Constant *Val = findMemLoc(P))
235 if (auto *I = getInitializer(CE->getOperand(0)))
244 Constant *Val =
258 static Function *getFunction(Constant *C) {
270 SmallVector<Constant *, 8> &Formals) {
285 SmallVector<Constant *, 8> &Formals) {
298 auto *ArgC = ConstantFoldLoadThroughBitcast(getVal(*ArgI), *ParI, DL);
311 Constant *Evaluator::castCallResultIfNeeded(Value *CallExpr, Constant *RV) {
311 Constant *Evaluator::castCallResultIfNeeded(Value *CallExpr, Constant *RV) {
332 Constant *InstResult = nullptr;
341 Constant *Ptr = getVal(SI->getOperand(1));
342 if (auto *FoldedPtr = ConstantFoldConstant(Ptr, DL, TLI)) {
354 Constant *Val = getVal(SI->getOperand(0));
377 if (Constant *FV = ConstantFoldLoadThroughBitcast(Val, Ty, DL)) {
384 Constant *NewVal =
434 Constant *P = getVal(GEP->getOperand(0));
435 SmallVector<Constant*, 8> GEPOps;
450 Constant *Ptr = getVal(LI->getOperand(0));
451 if (auto *FoldedPtr = ConstantFoldConstant(Ptr, DL, TLI)) {
501 Constant *Ptr = getVal(MSI->getDest());
502 Constant *Val = getVal(MSI->getValue());
503 Constant *DestVal = ComputeLoadResult(getVal(Ptr));
561 SmallVector<Constant *, 8> Formals;
570 if (Constant *C = ConstantFoldCall(cast<CallBase>(CS.getInstruction()),
587 Constant *RetVal = nullptr;
651 if (auto *FoldedInstResult = ConstantFoldConstant(InstResult, DL, TLI))
672 bool Evaluator::EvaluateFunction(Function *F, Constant *&RetVal,
673 const SmallVectorImpl<Constant*> &ActualArgs) {
lib/Transforms/Utils/FunctionComparator.cpp 200 int FunctionComparator::cmpConstants(const Constant *L,
201 const Constant *R) const {
308 if (int Res = cmpConstants(cast<Constant>(LA->getOperand(i)),
309 cast<Constant>(RA->getOperand(i))))
322 if (int Res = cmpConstants(cast<Constant>(LS->getOperand(i)),
323 cast<Constant>(RS->getOperand(i))))
336 if (int Res = cmpConstants(cast<Constant>(LV->getOperand(i)),
337 cast<Constant>(RV->getOperand(i))))
350 if (int Res = cmpConstants(cast<Constant>(LE->getOperand(i)),
351 cast<Constant>(RE->getOperand(i))))
732 const Constant *ConstL = dyn_cast<Constant>(L);
732 const Constant *ConstL = dyn_cast<Constant>(L);
733 const Constant *ConstR = dyn_cast<Constant>(R);
733 const Constant *ConstR = dyn_cast<Constant>(R);
lib/Transforms/Utils/GlobalStatus.cpp 45 bool llvm::isSafeToDestroyConstant(const Constant *C) {
53 if (const Constant *CU = dyn_cast<Constant>(U)) {
53 if (const Constant *CU = dyn_cast<Constant>(U)) {
113 if (Constant *C = dyn_cast<Constant>(StoredVal)) {
113 if (Constant *C = dyn_cast<Constant>(StoredVal)) {
174 } else if (const Constant *C = dyn_cast<Constant>(UR)) {
174 } else if (const Constant *C = dyn_cast<Constant>(UR)) {
lib/Transforms/Utils/InlineFunction.cpp 1345 return isa<Constant>(AI->getArraySize()) && !AI->isUsedWithInAlloca();
1592 Constant *CalledPersonality =
1600 Constant *CallerPersonality =
lib/Transforms/Utils/LibCallsShrinkWrap.cpp 115 Constant *V = ConstantFP::get(BBBuilder.getContext(), APFloat(Val));
440 Constant *V = ConstantFP::get(CI->getContext(), APFloat(127.0f));
468 Constant *V = ConstantFP::get(CI->getContext(), APFloat(UpperV));
469 Constant *V0 = ConstantFP::get(CI->getContext(), APFloat(0.0f));
lib/Transforms/Utils/Local.cpp 426 if (Constant *C = dyn_cast<Constant>(CI->getArgOperand(0)))
426 if (Constant *C = dyn_cast<Constant>(CI->getArgOperand(0)))
707 Constant *Replacement =
2559 auto *NullInt = ConstantExpr::getPtrToInt(
2561 auto *NonNullInt = ConstantExpr::getAdd(NullInt, ConstantInt::get(ITy, 1));
2907 if (!isa<Constant>(I->getOperand(OpIdx)))
lib/Transforms/Utils/LoopRotationUtils.cpp 556 !isa<Constant>(I->getOperand(0))
558 : !isa<Constant>(I->getOperand(1)) ? I->getOperand(1) : nullptr;
lib/Transforms/Utils/LoopUtils.cpp 830 SmallVector<Constant *, 32> ShuffleMask(VF, nullptr);
891 Constant::getNullValue(Src->getType()->getVectorElementType()), Src);
lib/Transforms/Utils/LowerMemIntrinsics.cpp 85 Constant *LoopEndCI = ConstantInt::get(TypeOfCopyLen, LoopEndCount);
lib/Transforms/Utils/LowerSwitch.cpp 363 Constant* NegLo = ConstantExpr::getNeg(Leaf.Low);
367 Constant *UpperBound = ConstantExpr::getAdd(NegLo, Leaf.High);
lib/Transforms/Utils/ModuleUtils.cpp 23 int Priority, Constant *Data) {
29 SmallVector<Constant *, 16> CurrentCtors;
33 if (Constant *Init = GVCtor->getInitializer()) {
37 CurrentCtors.push_back(cast<Constant>(Init->getOperand(i)));
43 Constant *CSVals[3];
47 : Constant::getNullValue(IRB.getInt8PtrTy());
48 Constant *RuntimeCtorInit =
55 Constant *NewInit = ConstantArray::get(AT, CurrentCtors);
63 void llvm::appendToGlobalCtors(Module &M, Function *F, int Priority, Constant *Data) {
67 void llvm::appendToGlobalDtors(Module &M, Function *F, int Priority, Constant *Data) {
73 SmallPtrSet<Constant *, 16> InitAsSet;
74 SmallVector<Constant *, 16> Init;
78 Constant *C = cast_or_null<Constant>(Op);
78 Constant *C = cast_or_null<Constant>(Op);
87 Constant *C = ConstantExpr::getBitCast(V, Int8PtrTy);
lib/Transforms/Utils/PromoteMemoryToRegister.cpp 308 Constant::getNullValue(LI->getType()));
lib/Transforms/Utils/SanitizerStats.cpp 51 {Constant::getNullValue(Int8PtrTy),
86 {Constant::getNullValue(Int8PtrTy),
lib/Transforms/Utils/SimplifyCFG.cpp 155 SmallVector<std::pair<Constant *, SmallVector<ConstantInt *, 4>>, 2>;
160 using SwitchCaseResultsTy = SmallVector<std::pair<PHINode *, Constant *>, 4>;
412 if (CI || !isa<Constant>(V) || !V->getType()->isPointerTy())
871 SmallPtrSet<Constant *, 16> DeadCases;
3655 Constant *DefaultCst = ConstantInt::getTrue(BB->getContext());
3656 Constant *NewCst = ConstantInt::getFalse(BB->getContext());
4390 Constant *Offset = ConstantExpr::getNeg(ContiguousCases->back());
4391 Constant *NumCases =
4605 static bool ValidLookupTableConstant(Constant *C, const TargetTransformInfo &TTI) {
4631 static Constant *
4633 const SmallDenseMap<Value *, Constant *> &ConstantPool) {
4634 if (Constant *C = dyn_cast<Constant>(V))
4634 if (Constant *C = dyn_cast<Constant>(V))
4643 static Constant *
4645 const SmallDenseMap<Value *, Constant *> &ConstantPool) {
4647 Constant *A = LookupConstant(Select->getCondition(), ConstantPool);
4657 SmallVector<Constant *, 4> COps;
4659 if (Constant *A = LookupConstant(I->getOperand(N), ConstantPool))
4680 SmallVectorImpl<std::pair<PHINode *, Constant *>> &Res,
4687 SmallDenseMap<Value *, Constant *> ConstantPool;
4696 } else if (Constant *C = ConstantFold(&I, DL, ConstantPool)) {
4732 Constant *ConstVal =
4805 SmallVector<std::pair<PHINode *, Constant *>, 1> DefaultResults;
4892 Constant *DefaultResult;
4923 const SmallVectorImpl<std::pair<ConstantInt *, Constant *>> &Values,
4924 Constant *DefaultValue, const DataLayout &DL, const StringRef &FuncName);
4959 Constant *SingleValue = nullptr;
4977 const SmallVectorImpl<std::pair<ConstantInt *, Constant *>> &Values,
4978 Constant *DefaultValue, const DataLayout &DL, const StringRef &FuncName) {
4988 SmallVector<Constant *, 64> TableContents(TableSize);
4991 Constant *CaseRes = Values[I].second;
5080 Constant *Initializer = ConstantArray::get(ArrayTy, TableContents);
5227 Constant *DefaultValue,
5228 const SmallVectorImpl<std::pair<ConstantInt *, Constant *>> &Values) {
5238 Constant *CmpOp1 = dyn_cast<Constant>(CmpInst->getOperand(1));
5238 Constant *CmpOp1 = dyn_cast<Constant>(CmpInst->getOperand(1));
5243 Constant *TrueConst = ConstantInt::getTrue(RangeCmp->getType());
5244 Constant *FalseConst = ConstantInt::getFalse(RangeCmp->getType());
5247 Constant *DefaultConst = ConstantExpr::getICmp(CmpInst->getPredicate(),
5255 Constant *CaseConst = ConstantExpr::getICmp(CmpInst->getPredicate(),
5324 using ResultListTy = SmallVector<std::pair<ConstantInt *, Constant *>, 4>;
5327 SmallDenseMap<PHINode *, Constant *> DefaultResults;
5339 using ResultsTy = SmallVector<std::pair<PHINode *, Constant *>, 4>;
5348 Constant *Value = I.second;
5367 SmallVector<std::pair<PHINode *, Constant *>, 4> DefaultResultsList;
5383 Constant *Result = I.second;
5483 Constant *DV = NeedMask ? ResultLists[PHI][0].second : DefaultResults[PHI];
5965 Constant *C = dyn_cast<Constant>(V);
5965 Constant *C = dyn_cast<Constant>(V);
lib/Transforms/Utils/SimplifyLibCalls.cpp 166 if (Constant *C = dyn_cast<Constant>(IC->getOperand(1)))
166 if (Constant *C = dyn_cast<Constant>(IC->getOperand(1)))
378 return Constant::getNullValue(CI->getType());
406 return Constant::getNullValue(CI->getType());
761 return Constant::getNullValue(CI->getType());
767 return Constant::getNullValue(CI->getType());
799 return Constant::getNullValue(CI->getType());
819 return Constant::getNullValue(CI->getType());
874 return Constant::getNullValue(CI->getType());
909 return Constant::getNullValue(CI->getType());
981 return Constant::getNullValue(CI->getType());
991 return Constant::getNullValue(CI->getType());
1013 if (auto *LHSC = dyn_cast<Constant>(LHS)) {
1013 if (auto *LHSC = dyn_cast<Constant>(LHS)) {
1018 if (auto *RHSC = dyn_cast<Constant>(RHS)) {
1018 if (auto *RHSC = dyn_cast<Constant>(RHS)) {
1070 return Constant::getNullValue(CI->getType());
1080 return Constant::getNullValue(CI->getType());
1941 Constant *Eul;
2210 Value *Cond = B.CreateICmpNE(Op, Constant::getNullValue(ArgType));
2230 Value *IsNeg = B.CreateICmpSLT(X, Constant::getNullValue(X->getType()));
lib/Transforms/Utils/SplitModule.cpp 85 if (isa<Constant>(UU) && !isa<GlobalValue>(UU)) {
lib/Transforms/Utils/VNCoercion.cpp 43 if (auto *CI = dyn_cast<Constant>(StoredVal))
43 if (auto *CI = dyn_cast<Constant>(StoredVal))
52 static T *coerceAvailableValueToLoadTypeHelper(T *StoredVal, Type *LoadedTy,
52 static T *coerceAvailableValueToLoadTypeHelper(T *StoredVal, Type *LoadedTy,
57 if (auto *C = dyn_cast<Constant>(StoredVal))
57 if (auto *C = dyn_cast<Constant>(StoredVal))
58 if (auto *FoldedStoredVal = ConstantFoldConstant(C, DL))
92 if (auto *FoldedStoredVal = ConstantFoldConstant(C, DL))
137 if (auto *C = dyn_cast<Constant>(StoredVal))
137 if (auto *C = dyn_cast<Constant>(StoredVal))
138 if (auto *FoldedStoredVal = ConstantFoldConstant(C, DL))
231 auto *CI = dyn_cast<Constant>(StoredVal);
231 auto *CI = dyn_cast<Constant>(StoredVal);
308 Constant *Src = dyn_cast<Constant>(MTI->getSource());
308 Constant *Src = dyn_cast<Constant>(MTI->getSource());
333 Constant *OffsetCst =
344 static T *getStoreValueForLoadHelper(T *SrcVal, unsigned Offset, Type *LoadTy,
344 static T *getStoreValueForLoadHelper(T *SrcVal, unsigned Offset, Type *LoadTy,
395 Constant *getConstantStoreValueForLoad(Constant *SrcVal, unsigned Offset,
395 Constant *getConstantStoreValueForLoad(Constant *SrcVal, unsigned Offset,
453 Constant *getConstantLoadValueForLoad(Constant *SrcVal, unsigned Offset,
453 Constant *getConstantLoadValueForLoad(Constant *SrcVal, unsigned Offset,
463 T *getMemInstValueForLoadHelper(MemIntrinsic *SrcInst, unsigned Offset,
474 T *Val = cast<T>(MSI->getValue());
474 T *Val = cast<T>(MSI->getValue());
478 T *OneElt = Val;
484 T *ShVal = Helper.CreateShl(
492 T *ShVal = Helper.CreateShl(Val, ConstantInt::get(Val->getType(), 1 * 8));
502 Constant *Src = cast<Constant>(MTI->getSource());
502 Constant *Src = cast<Constant>(MTI->getSource());
509 Constant *OffsetCst =
527 Constant *getConstantMemInstValueForLoad(MemIntrinsic *SrcInst, unsigned Offset,
532 if (!isa<Constant>(MSI->getValue()))
535 return getMemInstValueForLoadHelper<Constant, ConstantFolder>(SrcInst, Offset,
lib/Transforms/Utils/ValueMapper.cpp 74 Constant *Init;
78 Constant *InitPrefix;
82 Constant *Target;
120 SmallVector<Constant *, 16> AppendingInits;
148 Constant *mapConstant(const Constant *C) {
148 Constant *mapConstant(const Constant *C) {
149 return cast_or_null<Constant>(mapValue(C));
158 void scheduleMapGlobalInitializer(GlobalVariable &GV, Constant &Init,
160 void scheduleMapAppendingVariable(GlobalVariable &GV, Constant *InitPrefix,
162 ArrayRef<Constant *> NewMembers,
164 void scheduleMapGlobalIndirectSymbol(GlobalIndirectSymbol &GIS, Constant &Target,
171 void mapGlobalInitializer(GlobalVariable &GV, Constant &Init);
172 void mapAppendingVariable(GlobalVariable &GV, Constant *InitPrefix,
174 ArrayRef<Constant *> NewMembers);
175 void mapGlobalIndirectSymbol(GlobalIndirectSymbol &GIS, Constant &Target);
411 Constant *C = const_cast<Constant*>(dyn_cast<Constant>(V));
411 Constant *C = const_cast<Constant*>(dyn_cast<Constant>(V));
451 SmallVector<Constant*, 8> Ops;
454 Ops.push_back(cast<Constant>(C->getOperand(j)));
458 Ops.push_back(cast<Constant>(Mapped));
465 Ops.push_back(cast<Constant>(Mapped));
955 void Mapper::mapAppendingVariable(GlobalVariable &GV, Constant *InitPrefix,
957 ArrayRef<Constant *> NewMembers) {
958 SmallVector<Constant *, 16> Elements;
977 for (auto *V : NewMembers) {
978 Constant *NewV;
981 auto *E1 = cast<Constant>(mapValue(S->getOperand(0)));
981 auto *E1 = cast<Constant>(mapValue(S->getOperand(0)));
982 auto *E2 = cast<Constant>(mapValue(S->getOperand(1)));
982 auto *E2 = cast<Constant>(mapValue(S->getOperand(1)));
983 Constant *Null = Constant::getNullValue(VoidPtrTy);
983 Constant *Null = Constant::getNullValue(VoidPtrTy);
986 NewV = cast_or_null<Constant>(mapValue(V));
995 void Mapper::scheduleMapGlobalInitializer(GlobalVariable &GV, Constant &Init,
1009 Constant *InitPrefix,
1011 ArrayRef<Constant *> NewMembers,
1028 Constant &Target, unsigned MCID) {
1098 Constant *ValueMapper::mapConstant(const Constant &C) {
1098 Constant *ValueMapper::mapConstant(const Constant &C) {
1099 return cast_or_null<Constant>(mapValue(C));
1119 Constant &Init,
1125 Constant *InitPrefix,
1127 ArrayRef<Constant *> NewMembers,
1134 Constant &Target,
lib/Transforms/Vectorize/LoopVectorizationLegality.cpp 362 if (auto *C = dyn_cast<Constant>(V))
362 if (auto *C = dyn_cast<Constant>(V))
518 isa<Constant>(ID.getStartValue()) &&
519 cast<Constant>(ID.getStartValue())->isNullValue()) {
884 if (auto *C = dyn_cast<Constant>(Operand))
884 if (auto *C = dyn_cast<Constant>(Operand))
lib/Transforms/Vectorize/LoopVectorize.cpp 354 static Constant *getSignedIntOrFpConstant(Type *Ty, int64_t C) {
1716 Value *SplatVF = isa<Constant>(Mul)
1717 ? ConstantVector::getSplat(VF, cast<Constant>(Mul))
1902 SmallVector<Constant *, 8> Indices;
1910 Constant *Cv = ConstantVector::get(Indices);
1928 Constant *Cv = ConstantVector::get(Indices);
1979 auto *StartIdx = getSignedIntOrFpConstant(ScalarIVTy, VF * Part + Lane);
2110 SmallVector<Constant *, 8> ShuffleMask;
2247 auto *RepMask = createReplicatedMask(Builder, InterleaveFactor, VF);
2275 Constant *StrideMask = createStrideMask(Builder, I, InterleaveFactor, VF);
2324 Constant *IMask = createInterleaveMask(Builder, VF, InterleaveFactor);
2331 auto *RepMask = createReplicatedMask(Builder, InterleaveFactor, VF);
2609 Constant *Step = ConstantInt::get(Ty, VF * UF);
2985 Constant *Step = ConstantInt::get(IdxTy, VF * UF);
3568 SmallVector<Constant *, 8> ShuffleMask(VF);
3642 Constant *Zero = Builder.getInt32(0);
3680 Constant *Iden = RecurrenceDescriptor::getRecurrenceIdentity(
4031 Constant *Idx = ConstantInt::get(PtrInd->getType(), Lane + Part * VF);
6570 Constant *C = ConstantFP::get(Ty, (double)StartIdx);
6576 Constant *C = ConstantInt::get(Ty, StartIdx);
lib/Transforms/Vectorize/SLPVectorizer.cpp 203 if (!isa<Constant>(i) || isa<ConstantExpr>(i) || isa<GlobalValue>(i))
824 if (isa<Constant>(Op)) {
1020 else if (isa<Constant>(OpLane0))
3688 if (Res.second || isa<Constant>(V))
4199 SmallVector<Constant *, 8> Mask(e);
4989 if (isa<Constant>(V)) {
5484 if (GEP->getNumIndices() > 1 || isa<Constant>(Idx))
5693 SmallVector<Constant *, 32> ShuffleMask(
tools/bugpoint-passes/TestPasses.cpp 62 CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
tools/bugpoint/CrashDebugger.cpp 221 std::vector<Constant *> Used;
223 Constant *Op = cast<Constant>(V->stripPointerCasts());
223 Constant *Op = cast<Constant>(V->stripPointerCasts());
225 Used.push_back(cast<Constant>(V));
230 auto *NewUsedVal = ConstantArray::get(NewValTy, Used);
282 Constant *Replacement = ConstantPointerNull::get(Ty);
290 Constant *Replacement = ConstantPointerNull::get(Ty);
475 BBTerm->replaceAllUsesWith(Constant::getNullValue(BBTerm->getType()));
tools/bugpoint/ExtractFunction.cpp 54 Constant *I = GV->getInitializer();
58 std::vector<Constant *> Todo;
59 std::set<Constant *> Done;
63 Constant *V = Todo.back();
74 Constant *C = dyn_cast<Constant>(*i);
74 Constant *C = dyn_cast<Constant>(*i);
105 TheInst->replaceAllUsesWith(Constant::getNullValue(TheInst->getType()));
228 static Constant *GetTorInit(std::vector<std::pair<Function *, int>> &TorList) {
230 std::vector<Constant *> ArrayElts;
235 Constant *Elts[] = {ConstantInt::get(Int32Ty, TorList[i].second),
270 Constant *FP = CS->getOperand(1);
288 Constant *M1Init = GetTorInit(M1Tors);
299 Constant *M2Init = GetTorInit(M2Tors);
tools/bugpoint/Miscompilation.cpp 843 Constant *InitArray =
853 std::vector<Constant *> GEPargs(
854 2, Constant::getNullValue(Type::getInt32Ty(F->getContext())));
864 Constant *NullPtr = ConstantPointerNull::get(F->getType());
tools/clang/include/clang/CodeGen/ConstantInitBuilder.h 54 llvm::SmallVector<llvm::Constant*, 4> Indices;
59 llvm::SmallVector<llvm::Constant*, 16> Buffer;
77 llvm::GlobalVariable *createGlobal(llvm::Constant *initializer,
85 ConstantInitFuture createFuture(llvm::Constant *initializer);
88 llvm::Constant *initializer);
108 llvm::SmallVectorImpl<llvm::Constant*> &getBuffer() {
112 const llvm::SmallVectorImpl<llvm::Constant*> &getBuffer() const {
186 void add(llvm::Constant *value) {
208 void addBitCast(llvm::Constant *value, llvm::Type *type) {
213 void addAll(llvm::ArrayRef<llvm::Constant *> values) {
225 void addRelativeOffset(llvm::IntegerType *type, llvm::Constant *target) {
234 llvm::Constant *address,
236 llvm::Constant *offset = getRelativeOffset(type, address);
289 void fillPlaceholder(PlaceholderPosition position, llvm::Constant *value) {
292 llvm::Constant *&slot = Builder.Buffer[position.Index];
303 llvm::Constant *getAddrOfCurrentPosition(llvm::Type *type);
305 llvm::ArrayRef<llvm::Constant*> getGEPIndicesToCurrentPosition(
306 llvm::SmallVectorImpl<llvm::Constant*> &indices) {
312 llvm::Constant *finishArray(llvm::Type *eltTy);
313 llvm::Constant *finishStruct(llvm::StructType *structTy);
316 void getGEPIndicesTo(llvm::SmallVectorImpl<llvm::Constant*> &indices,
319 llvm::Constant *getRelativeOffset(llvm::IntegerType *offsetType,
320 llvm::Constant *target);
423 llvm::Constant *finishImpl() {
474 llvm::Constant *finishImpl() {
tools/clang/include/clang/CodeGen/ConstantInitFuture.h 48 using PairTy = llvm::PointerUnion<ConstantInitBuilderBase*, llvm::Constant*>;
59 explicit ConstantInitFuture(llvm::Constant *initializer) : Data(initializer) {
tools/clang/include/clang/CodeGen/ModuleBuilder.h 85 llvm::Constant *GetAddrOfGlobal(GlobalDecl decl, bool isForDefinition);
tools/clang/lib/CodeGen/Address.h 76 ConstantAddress(llvm::Constant *pointer, CharUnits alignment)
83 llvm::Constant *getPointer() const {
84 return llvm::cast<llvm::Constant>(Address::getPointer());
97 return llvm::isa<llvm::Constant>(addr.getPointer());
100 return ConstantAddress(llvm::cast<llvm::Constant>(addr.getPointer()),
108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/BackendUtil.cpp 1600 SmallVector<Constant*, 2> UsedArray;
1634 llvm::Constant *ModuleConstant =
1657 llvm::Constant *CmdConstant =
tools/clang/lib/CodeGen/CGBlocks.cpp 50 static llvm::Constant *buildGlobalBlock(CodeGenModule &CGM,
52 llvm::Constant *blockFn);
55 static llvm::Constant *buildCopyHelper(CodeGenModule &CGM,
61 static llvm::Constant *buildDisposeHelper(CodeGenModule &CGM,
184 static llvm::Constant *buildBlockDescriptor(CodeGenModule &CGM,
227 llvm::Constant *copyHelper = buildCopyHelper(CGM, blockInfo);
231 llvm::Constant *disposeHelper = buildDisposeHelper(CGM, blockInfo);
411 static llvm::Constant *tryCaptureAsConstant(CodeGenModule &CGM,
592 if (llvm::Constant *constant = tryCaptureAsConstant(CGM, CGF, variable)) {
906 if (llvm::Constant *Block = CGM.getAddrOfGlobalBlockIfEmitted(blockExpr)) {
939 auto *blockFn = llvm::ConstantExpr::getPointerCast(InvokeFn, GenVoidPtrTy);
950 llvm::Constant *isa;
951 llvm::Constant *descriptor;
957 llvm::Constant *blockISA = blockInfo.getBlockDecl()->doesNotEscape()
1353 llvm::Constant *Addr) {
1359 llvm::Constant *
1362 if (llvm::Constant *Block = getAddrOfGlobalBlockIfEmitted(BE))
1382 static llvm::Constant *buildGlobalBlock(CodeGenModule &CGM,
1384 llvm::Constant *blockFn) {
1465 llvm::Constant *Result =
1991 llvm::Constant *
2186 llvm::Constant *
2443 static llvm::Constant *
2512 static llvm::Constant *buildByrefCopyHelper(CodeGenModule &CGM,
2520 static llvm::Constant *
2575 static llvm::Constant *buildByrefDisposeHelper(CodeGenModule &CGM,
2947 llvm::Constant *C) {
2991 *this, cast<llvm::Constant>(BlockObjectDispose.getCallee()));
3004 *this, cast<llvm::Constant>(BlockObjectAssign.getCallee()));
3008 llvm::Constant *CodeGenModule::getNSConcreteGlobalBlock() {
3019 llvm::Constant *CodeGenModule::getNSConcreteStackBlock() {
tools/clang/lib/CodeGen/CGBuiltin.cpp 69 llvm::Constant *CodeGenModule::getBuiltinLibFunction(const FunctionDecl *FD,
441 Value *Zero = llvm::Constant::getNullValue(IntTy);
446 const CallExpr *E, llvm::Constant *calleeValue) {
923 Value *ArgZero = llvm::Constant::getNullValue(ArgType);
924 Value *ResZero = llvm::Constant::getNullValue(ResultType);
1103 ArgValue, llvm::Constant::getNullValue(ArgValue->getType()));
1248 ArgVal = llvm::Constant::getIntegerValue(Int64Ty, llvm::APInt(64, Val));
1258 if (!isa<Constant>(ArgVal))
1333 llvm::Value *Zero = llvm::Constant::getNullValue(OpTy);
1818 Constant *Zero = llvm::Constant::getNullValue(ArgValue->getType());
1818 Constant *Zero = llvm::Constant::getNullValue(ArgValue->getType());
1832 : llvm::Constant::getNullValue(Imag->getType());
1905 Value *Zero = llvm::Constant::getNullValue(ArgType);
1962 Value *Zero = llvm::Constant::getNullValue(ArgType);
2243 Constant *Infinity = ConstantFP::getInfinity(V->getType());
2260 Value *Zero = Constant::getNullValue(IntTy);
2311 Value *IsZero = Builder.CreateFCmpOEQ(V, Constant::getNullValue(Ty),
2847 Builder.CreateAlignedStore(llvm::Constant::getNullValue(ITy), Ptr,
2882 Args.add(RValue::get(llvm::Constant::getNullValue(VoidPtrTy)),
4120 cast<llvm::Constant>(EmitScalarExpr(E->getCallee())));
4335 Value *CodeGenFunction::EmitNeonSplat(Value *V, Constant *C) {
5289 Constant *ShiftAmt =
5526 llvm::Constant *CI = ConstantInt::get(SizeTy, 0);
5691 Constant *ShiftAmt =
5827 Op = Builder.CreateFCmp(Fp, Op, Constant::getNullValue(OTy));
5829 Op = Builder.CreateICmp(Ip, Op, Constant::getNullValue(OTy));
6747 Value *SV = llvm::ConstantVector::get(cast<llvm::Constant>(Ops[2]));
6972 llvm::Constant *EightV = ConstantInt::get(Ty, 8);
6990 llvm::Constant *TwentyFourV = ConstantInt::get(Ty, 24);
7042 llvm::Constant *CI = ConstantInt::get(SizeTy, 0);
7779 Builder.CreateICmpEQ(Ops[0], llvm::Constant::getNullValue(Int64Ty));
7879 llvm::Constant::getNullValue(Int64Ty));
8018 Constant *CI = ConstantInt::get(SizeTy, 0);
8115 Constant *CI = ConstantInt::get(SizeTy, 0);
8363 llvm::Constant *cst = cast<Constant>(Ops[3]);
8363 llvm::Constant *cst = cast<Constant>(Ops[3]);
9155 llvm::Constant *CI = ConstantInt::get(Int32Ty, 0);
9469 AllConstants &= isa<Constant>(Ops[i]);
9473 SmallVector<llvm::Constant*, 16> CstOps;
9475 CstOps.push_back(cast<Constant>(Ops[i]));
9643 return llvm::Constant::getNullValue(Ty); // FALSE
9645 return llvm::Constant::getAllOnesValue(Ty); // TRUE
9659 if (const auto *C = dyn_cast<Constant>(Mask))
9659 if (const auto *C = dyn_cast<Constant>(Mask))
9671 if (const auto *C = dyn_cast<Constant>(Mask))
9671 if (const auto *C = dyn_cast<Constant>(Mask))
9686 const auto *C = dyn_cast<Constant>(MaskIn);
9686 const auto *C = dyn_cast<Constant>(MaskIn);
9698 Cmp, llvm::Constant::getNullValue(Cmp->getType()), Indices);
9714 Cmp = Constant::getNullValue(
9717 Cmp = Constant::getAllOnesValue(
9741 Value *Zero = Constant::getNullValue(In->getType());
9767 Value *Zero = llvm::Constant::getNullValue(Ty);
9868 MaskFalseVal = Constant::getNullValue(Ops[0]->getType());
9915 Value *PassThru = ZeroMask ? Constant::getNullValue(Res->getType())
9940 Constant *ShiftAmt = ConstantInt::get(Ty, 32);
9947 Constant *Mask = ConstantInt::get(Ty, 0xffffffff);
10036 llvm::Constant *CpuModel = CGM.CreateRuntimeVariable(STy, "__cpu_model");
10109 llvm::Constant *CpuModel = CGM.CreateRuntimeVariable(STy, "__cpu_model");
10128 llvm::Constant *CpuFeatures2 = CGM.CreateRuntimeVariable(Int32Ty,
10269 return llvm::Constant::getNullValue(ConvertType(E->getType()));
10455 Constant::getNullValue(Ops[0]->getType()));
10937 if (const auto *C = dyn_cast<Constant>(Ops[2]))
10937 if (const auto *C = dyn_cast<Constant>(Ops[2]))
11116 return llvm::Constant::getNullValue(ConvertType(E->getType()));
11123 Ops[0] = llvm::Constant::getNullValue(Ops[0]->getType());
11240 return llvm::Constant::getNullValue(ResultType);
11254 Value *Zero = llvm::Constant::getNullValue(VecTy);
11270 return llvm::Constant::getNullValue(ResultType);
11284 Value *Zero = llvm::Constant::getNullValue(VecTy);
11298 return llvm::Constant::getNullValue(Ops[0]->getType());
11306 Value *Zero = llvm::Constant::getNullValue(In->getType());
11320 return llvm::Constant::getNullValue(Ops[0]->getType());
11328 Value *Zero = llvm::Constant::getNullValue(In->getType());
11466 Value *C = llvm::Constant::getAllOnesValue(Ops[0]->getType());
11475 Value *C = llvm::Constant::getNullValue(Ops[0]->getType());
12678 Constant *ShuffleElts[2] = { ConstantInt::get(Int32Ty, 1),
12681 Constant *ShuffleMask = llvm::ConstantVector::get(ShuffleElts);
12720 Constant *ShuffleElts[2] = { ConstantInt::get(Int32Ty, 1),
12723 Constant *ShuffleMask = llvm::ConstantVector::get(ShuffleElts);
12747 Constant *ShuffleElts[2] = {ConstantInt::get(Int32Ty, ElemIdx0),
12749 Constant *ShuffleMask = llvm::ConstantVector::get(ShuffleElts);
12786 Constant *ShuffleElts[4] = {ConstantInt::get(Int32Ty, ElemIdx0),
12791 Constant *ShuffleMask = llvm::ConstantVector::get(ShuffleElts);
tools/clang/lib/CodeGen/CGCUDANV.cpp 80 llvm::Constant *makeConstantString(const std::string &Str,
84 llvm::Constant *Zeros[] = {llvm::ConstantInt::get(SizeTy, 0),
363 llvm::Constant *Zero = llvm::ConstantInt::get(IntTy, 0);
421 llvm::Constant *KernelName = makeConstantString(getDeviceSideName(I.D));
422 llvm::Constant *NullPtr = llvm::ConstantPointerNull::get(VoidPtrTy);
448 llvm::Constant *VarName = makeConstantString(getDeviceSideName(Info.D));
542 llvm::Constant *FatBinStr;
640 llvm::Constant *Zero =
641 llvm::Constant::getNullValue(HandleValue->getType());
694 llvm::Constant *ModuleIDConstant =
783 llvm::Constant *Zero = llvm::Constant::getNullValue(HandleValue->getType());
783 llvm::Constant *Zero = llvm::Constant::getNullValue(HandleValue->getType());
tools/clang/lib/CodeGen/CGCXX.cpp 141 llvm::Constant *Aliasee = Ref;
240 llvm::Constant *Ptr = GetOrCreateLLVMFunction(
tools/clang/lib/CodeGen/CGCXXABI.cpp 31 llvm::Constant *CGCXXABI::GetBogusMemberPointer(QualType T) {
32 return llvm::Constant::getNullValue(CGM.getTypes().ConvertType(T));
53 llvm::Constant *FnPtr = llvm::Constant::getNullValue(FTy->getPointerTo());
53 llvm::Constant *FnPtr = llvm::Constant::getNullValue(FTy->getPointerTo());
64 return llvm::Constant::getNullValue(Ty);
74 llvm::Constant *CGCXXABI::EmitMemberPointerConversion(const CastExpr *E,
75 llvm::Constant *Src) {
97 llvm::Constant *
102 llvm::Constant *CGCXXABI::EmitMemberFunctionPointer(const CXXMethodDecl *MD) {
107 llvm::Constant *CGCXXABI::EmitMemberDataPointer(const MemberPointerType *MPT,
112 llvm::Constant *CGCXXABI::EmitMemberPointer(const APValue &MP, QualType MPT) {
233 llvm::Constant *CGCXXABI::getMemberPointerAdjustment(const CastExpr *E) {
tools/clang/lib/CodeGen/CGCXXABI.h 66 llvm::Constant *GetBogusMemberPointer(QualType T);
173 virtual llvm::Constant *EmitMemberPointerConversion(const CastExpr *E,
174 llvm::Constant *Src);
186 virtual llvm::Constant *EmitNullMemberPointer(const MemberPointerType *MPT);
189 virtual llvm::Constant *EmitMemberFunctionPointer(const CXXMethodDecl *MD);
192 virtual llvm::Constant *EmitMemberDataPointer(const MemberPointerType *MPT,
196 virtual llvm::Constant *EmitMemberPointer(const APValue &MP, QualType MPT);
218 llvm::Constant *getMemberPointerAdjustment(const CastExpr *E);
246 virtual llvm::Constant *getAddrOfRTTIDescriptor(QualType Ty) = 0;
396 virtual llvm::Constant *
409 virtual llvm::Constant *
560 llvm::Constant *Addr) = 0;
tools/clang/lib/CodeGen/CGCall.cpp 2237 llvm::Constant* Zero = llvm::Constant::getNullValue(LLVMTy);
2237 llvm::Constant* Zero = llvm::Constant::getNullValue(LLVMTy);
3016 llvm::Constant *StaticData[] = {EmitCheckSourceLocation(AttrLoc)};
3395 Builder.CreateICmpNE(V, llvm::Constant::getNullValue(V->getType()));
3396 llvm::Constant *StaticData[] = {
tools/clang/lib/CodeGen/CGCall.h 133 static CGCallee forDirect(llvm::Constant *functionPtr,
tools/clang/lib/CodeGen/CGClass.cpp 176 llvm::Constant *
368 PHI->addIncoming(llvm::Constant::getNullValue(BasePtrTy), origBB);
428 PHI->addIncoming(llvm::Constant::getNullValue(Value->getType()), CastNull);
2156 llvm::Constant *CalleePtr = CGM.getAddrOfCXXStructor(GlobalDecl(D, Type));
2762 llvm::Constant *StaticData[] = {
2841 llvm::Constant *calleePtr =
tools/clang/lib/CodeGen/CGCleanup.cpp 1213 llvm::Constant *value = CGF.Builder.getInt1(kind == ForDeactivation);
tools/clang/lib/CodeGen/CGCleanup.h 38 llvm::Constant *RTTI;
196 void setHandler(unsigned I, llvm::Constant *Type, llvm::BasicBlock *Block) {
tools/clang/lib/CodeGen/CGDebugInfo.cpp 1353 llvm::Constant *C = nullptr;
1770 llvm::Constant *V = nullptr;
1802 TheCU, Name, TTy, cast_or_null<llvm::Constant>(V)));
1807 llvm::Constant *V = nullptr;
1838 llvm::Constant *V = ConstantEmitter(CGM).emitAbstract(E, T);
tools/clang/lib/CodeGen/CGDecl.cpp 218 llvm::Constant *CodeGenModule::getOrCreateStaticVarDecl(
224 if (llvm::Constant *ExistingGV = StaticLocalDeclMap[&D])
243 llvm::Constant *Init = nullptr;
265 llvm::Constant *Addr = GV;
316 llvm::Constant *Init = emitter.tryEmitForInitializer(D);
354 llvm::Constant *NewPtrForOldDecl =
382 llvm::Constant *addr = CGM.getOrCreateStaticVarDecl(D, Linkage);
436 llvm::Constant *castedAddr =
559 llvm::Constant *CleanupFn;
563 CallCleanupFunction(llvm::Constant *CleanupFn, const CGFunctionInfo *Info,
732 llvm::Constant *StaticData[] = {
859 static bool canEmitInitWithFewStoresAfterBZero(llvm::Constant *Init,
874 llvm::Constant *Elt = cast<llvm::Constant>(Init->getOperand(i));
874 llvm::Constant *Elt = cast<llvm::Constant>(Init->getOperand(i));
884 llvm::Constant *Elt = CDS->getElementAsConstant(i);
898 llvm::Constant *Init, Address Loc,
913 llvm::Constant *Elt = CDS->getElementAsConstant(i);
928 llvm::Constant *Elt = cast<llvm::Constant>(Init->getOperand(i));
928 llvm::Constant *Elt = cast<llvm::Constant>(Init->getOperand(i));
941 static bool shouldUseBZeroPlusStoresToInitialize(llvm::Constant *Init,
962 static llvm::Value *shouldUseMemSetToInitialize(llvm::Constant *Init,
988 static llvm::Constant *patternOrZeroFor(CodeGenModule &CGM, IsPattern isPattern,
993 return llvm::Constant::getNullValue(Ty);
996 static llvm::Constant *constWithPadding(CodeGenModule &CGM, IsPattern isPattern,
997 llvm::Constant *constant);
1000 static llvm::Constant *constStructWithPadding(CodeGenModule &CGM,
1003 llvm::Constant *constant) {
1008 SmallVector<llvm::Constant *, 8> Values;
1017 llvm::Constant *CurOp;
1019 CurOp = llvm::Constant::getNullValue(STy->getElementType(i));
1021 CurOp = cast<llvm::Constant>(constant->getAggregateElement(i));
1022 auto *NewOp = constWithPadding(CGM, isPattern, CurOp);
1040 static llvm::Constant *constWithPadding(CodeGenModule &CGM, IsPattern isPattern,
1041 llvm::Constant *constant) {
1046 llvm::SmallVector<llvm::Constant *, 8> Values;
1052 llvm::Constant *OpValue, *PaddedOp;
1054 OpValue = llvm::Constant::getNullValue(ElemTy);
1078 llvm::Constant *Constant,
1130 llvm::Constant *Constant,
1143 llvm::Constant *constant) {
1197 cast<llvm::Constant>(Builder.CreateExtractValue(constant, i)));
1208 cast<llvm::Constant>(Builder.CreateExtractValue(constant, i)));
1226 llvm::Constant *constant =
1227 constWithPadding(CGM, IsPattern::No, llvm::Constant::getNullValue(ElTy));
1235 llvm::Constant *constant = constWithPadding(
1241 static bool containsUndef(llvm::Constant *constant) {
1247 if (containsUndef(cast<llvm::Constant>(Op)))
1252 static llvm::Constant *replaceUndef(CodeGenModule &CGM, IsPattern isPattern,
1253 llvm::Constant *constant) {
1261 llvm::SmallVector<llvm::Constant *, 8> Values(constant->getNumOperands());
1263 auto *OpValue = cast<llvm::Constant>(constant->getOperand(Op));
1263 auto *OpValue = cast<llvm::Constant>(constant->getOperand(Op));
1705 llvm::Constant *Constant = constWithPadding(
1812 llvm::Constant *constant = nullptr;
2004 llvm::Constant *F = CGM.GetAddrOfFunction(FD);
tools/clang/lib/CodeGen/CGDeclCXX.cpp 96 llvm::Constant *Argument;
140 Argument = llvm::Constant::getNullValue(CGF.Int8PtrTy);
149 llvm::Constant *Addr) {
154 void CodeGenFunction::EmitInvariantStart(llvm::Constant *Addr, CharUnits Size) {
173 llvm::Constant *DeclPtr,
230 llvm::Constant *addr) {
263 llvm::Constant *addr) {
265 llvm::Constant *dtorStub = createAtExitStub(VD, dtor, addr);
269 void CodeGenFunction::registerGlobalDtorWithAtExit(llvm::Constant *dtorStub) {
730 llvm::Constant *>> &DtorsAndObjects) {
742 llvm::Constant *Arg;
tools/clang/lib/CodeGen/CGException.cpp 245 static llvm::Constant *getOpaquePersonalityFn(CodeGenModule &CGM,
252 return llvm::ConstantExpr::getBitCast(cast<llvm::Constant>(Fn.getCallee()),
271 llvm::Constant *CVal = cast<llvm::Constant>(Val);
271 llvm::Constant *CVal = cast<llvm::Constant>(Val);
288 static bool PersonalityHasOnlyCXXUses(llvm::Constant *Fn) {
356 static llvm::Constant *getCatchAllValue(CodeGenFunction &CGF) {
864 SmallVector<llvm::Constant*, 8> Filters;
871 Filters.push_back(cast<llvm::Constant>(filterTypes[i]));
872 llvm::Constant *FilterArray = llvm::ConstantArray::get(AType, Filters);
919 TypeInfo.RTTI = llvm::Constant::getNullValue(CGF.VoidPtrTy);
926 llvm::Constant::getNullValue(CGF.VoidPtrTy)});
969 TypeInfo.RTTI = llvm::Constant::getNullValue(CGF.VoidPtrTy);
1001 TypeInfo.RTTI = llvm::Constant::getNullValue(CGF.VoidPtrTy);
1725 llvm::Constant *ParentI8Fn =
1791 llvm::Constant *ParentI8Fn =
2012 llvm::Constant *C =
2025 llvm::Constant *OpaqueFunc =
tools/clang/lib/CodeGen/CGExpr.cpp 335 llvm::Constant *CleanupArg;
341 CleanupArg = llvm::Constant::getNullValue(CGF.Int8PtrTy);
345 CleanupArg = cast<llvm::Constant>(ReferenceTemporary.getPointer());
396 llvm::Constant *C = GV;
492 cast<llvm::Constant>(Object.getPointer()),
616 const llvm::Constant *Elts) {
720 llvm::Constant *ConstantSize = dyn_cast<llvm::Constant>(Size);
720 llvm::Constant *ConstantSize = dyn_cast<llvm::Constant>(Size);
764 llvm::Constant *StaticData[] = {
837 llvm::Constant *StaticData[] = {
975 llvm::Constant *StaticData[] = {
1625 llvm::Constant *StaticArgs[] = {EmitCheckSourceLocation(Loc),
1729 llvm::Constant *Mask[] = {Builder.getInt32(0), Builder.getInt32(1),
1856 const llvm::Constant *Elts = LV.getExtVectorElts();
1870 SmallVector<llvm::Constant*, 4> Mask;
1891 const llvm::Constant *Elts = LV.getExtVectorElts();
2097 const llvm::Constant *Elts = Dst.getExtVectorElts();
2108 SmallVector<llvm::Constant*, 4> Mask(NumDstElts);
2121 SmallVector<llvm::Constant*, 4> ExtMask;
2131 SmallVector<llvm::Constant*, 4> Mask;
2396 static llvm::Constant *EmitFunctionDeclPointer(CodeGenModule &CGM,
2403 llvm::Constant *V = CGM.GetAddrOfFunction(FD);
2535 llvm::Constant *Val = ConstantEmitter(*this).emitAbstract(
2791 llvm::Constant *CodeGenFunction::EmitCheckTypeDescriptor(QualType T) {
2793 if (llvm::Constant *C = CGM.getTypeDescriptorFromMap(T))
2816 llvm::Constant *Components[] = {
2820 llvm::Constant *Descriptor = llvm::ConstantStruct::getAnon(Components);
2872 llvm::Constant *CodeGenFunction::EmitCheckSourceLocation(SourceLocation Loc) {
2873 llvm::Constant *Filename;
2911 Filename = llvm::Constant::getNullValue(Int8PtrTy);
2915 llvm::Constant *Data[] = {Filename, Builder.getInt32(Line),
3007 SanitizerHandler CheckHandler, ArrayRef<llvm::Constant *> StaticArgs,
3073 llvm::Constant *Info = llvm::ConstantStruct::getAnon(StaticArgs);
3117 llvm::Value *Ptr, ArrayRef<llvm::Constant *> StaticArgs) {
3134 llvm::Constant *Info = llvm::ConstantStruct::getAnon(StaticArgs);
3840 llvm::Constant *CV =
3847 llvm::Constant *BaseElts = Base.getExtVectorElts();
3848 SmallVector<llvm::Constant *, 4> CElts;
3852 llvm::Constant *CV = llvm::ConstantVector::get(CElts);
4551 llvm::Constant *calleePtr = EmitFunctionDeclPointer(CGF.CGM, FD);
4791 if (llvm::Constant *PrefixSig =
4798 llvm::Constant *FTRTTIConst =
4827 llvm::Constant *StaticData[] = {EmitCheckSourceLocation(E->getBeginLoc()),
4861 llvm::Constant *StaticData[] = {
tools/clang/lib/CodeGen/CGExprAgg.cpp 498 if (llvm::Constant *C = Emitter.tryEmitForInitializer(E, AS, ArrayQTy)) {
1320 llvm::Constant::getNullValue(CGF.Int8PtrTy),
1505 CGF.Int8Ty, llvm::Constant::getNullValue(CGF.Int8PtrTy),
1834 llvm::Constant *SizeVal = CGF.Builder.getInt64(Size.getQuantity());
tools/clang/lib/CodeGen/CGExprCXX.cpp 526 llvm::Constant *NullConstantForBase = CGF.CGM.EmitNullConstantForBase(Base);
781 size = llvm::Constant::getAllOnesValue(CGF.SizeTy);
923 llvm::Constant::getAllOnesValue(CGF.SizeTy),
1000 auto *InitializedSize = llvm::ConstantInt::get(
1290 llvm::Constant *CalleePtr = CGF.CGM.GetAddrOfFunction(CalleeDecl);
1742 PHI->addIncoming(llvm::Constant::getNullValue(resultPtr->getType()),
2148 llvm::Constant *TypeInfo =
2171 return llvm::Constant::getNullValue(DestLTy);
2265 PHI->addIncoming(llvm::Constant::getNullValue(Value->getType()), CastNull);
tools/clang/lib/CodeGen/CGExprComplex.cpp 132 llvm::Constant *pair = Constant.getValue();
235 llvm::Constant *Null = llvm::Constant::getNullValue(CGF.ConvertType(Elem));
235 llvm::Constant *Null = llvm::Constant::getNullValue(CGF.ConvertType(Elem));
241 llvm::Constant *Null =
242 llvm::Constant::getNullValue(CGF.ConvertType(Elem));
402 return ComplexPairTy(llvm::Constant::getNullValue(Imag->getType()), Imag);
447 return ComplexPairTy(Val, llvm::Constant::getNullValue(Val->getType()));
795 LibCallOp.LHS.second = llvm::Constant::getNullValue(LHSr->getType());
815 LHSi = llvm::Constant::getNullValue(RHSi->getType());
1080 llvm::Value* zeroConstant = llvm::Constant::getNullValue(LTy);
tools/clang/lib/CodeGen/CGExprConstant.cpp 46 CharUnits getAlignment(const llvm::Constant *C) const {
55 CharUnits getSize(const llvm::Constant *C) const {
59 llvm::Constant *getPadding(CharUnits PadSize) const {
66 llvm::Constant *getZeroes(CharUnits ZeroSize) const {
83 llvm::SmallVector<llvm::Constant*, 32> Elems;
98 static llvm::Constant *buildFrom(CodeGenModule &CGM,
99 ArrayRef<llvm::Constant *> Elems,
114 bool add(llvm::Constant *C, CharUnits Offset, bool AllowOverwrite);
128 llvm::Constant *build(llvm::Type *DesiredTy, bool AllowOversized) const {
141 bool ConstantAggregateBuilder::add(llvm::Constant *C, CharUnits Offset,
250 llvm::Constant *&ToUpdate = Elems[*FirstElemToUpdate];
316 llvm::Constant *C = Elems[Index];
382 static llvm::Constant *
385 SmallVectorImpl<llvm::Constant *> &Elements,
386 llvm::Constant *Filler);
388 llvm::Constant *ConstantAggregateBuilder::buildFrom(
389 CodeGenModule &CGM, ArrayRef<llvm::Constant *> Elems,
406 llvm::Constant *Filler = llvm::Constant::getNullValue(CommonType);
406 llvm::Constant *Filler = llvm::Constant::getNullValue(CommonType);
408 SmallVector<llvm::Constant*, 32> ArrayElements;
434 for (llvm::Constant *C : Elems)
439 ArrayRef<llvm::Constant*> UnpackedElems = Elems;
440 llvm::SmallVector<llvm::Constant*, 32> UnpackedElemStorage;
456 llvm::SmallVector<llvm::Constant*, 32> PackedElems;
524 llvm::Constant *Replacement = buildFrom(
543 static llvm::Constant *BuildStruct(ConstantEmitter &Emitter,
545 static llvm::Constant *BuildStruct(ConstantEmitter &Emitter,
558 llvm::Constant *InitExpr, bool AllowOverwrite = false);
560 bool AppendBytes(CharUnits FieldOffsetInChars, llvm::Constant *InitCst,
569 llvm::Constant *Finalize(QualType Ty);
573 const FieldDecl *Field, uint64_t FieldOffset, llvm::Constant *InitCst,
583 llvm::Constant *InitCst,
624 llvm::Constant *FillC = nullptr;
652 llvm::Constant *Val = Emitter.tryEmitPrivateForMemory(Init, ElemType);
714 llvm::Constant *EltInit =
769 llvm::Constant *VTableAddressPoint =
816 llvm::Constant *EltInit =
841 llvm::Constant *ConstStructBuilder::Finalize(QualType Type) {
847 llvm::Constant *ConstStructBuilder::BuildStruct(ConstantEmitter &Emitter,
859 llvm::Constant *ConstStructBuilder::BuildStruct(ConstantEmitter &Emitter,
895 llvm::Constant *C = emitter.tryEmitForInitializer(E->getInitializer(),
915 static llvm::Constant *
918 SmallVectorImpl<llvm::Constant *> &Elements,
919 llvm::Constant *Filler) {
941 llvm::Constant *Initial = llvm::ConstantArray::get(
970 for (llvm::Constant *Elt : Elements)
984 public StmtVisitor<ConstExprEmitter, llvm::Constant*, QualType> {
997 llvm::Constant *VisitStmt(Stmt *S, QualType T) {
1001 llvm::Constant *VisitConstantExpr(ConstantExpr *CE, QualType T) {
1005 llvm::Constant *VisitParenExpr(ParenExpr *PE, QualType T) {
1009 llvm::Constant *
1015 llvm::Constant *VisitGenericSelectionExpr(GenericSelectionExpr *GE,
1020 llvm::Constant *VisitChooseExpr(ChooseExpr *CE, QualType T) {
1024 llvm::Constant *VisitCompoundLiteralExpr(CompoundLiteralExpr *E, QualType T) {
1028 llvm::Constant *VisitCastExpr(CastExpr *E, QualType destType) {
1049 SmallVector<llvm::Constant*, 2> Elts;
1162 llvm::Constant *VisitCXXDefaultInitExpr(CXXDefaultInitExpr *DIE, QualType T) {
1168 llvm::Constant *VisitExprWithCleanups(ExprWithCleanups *E, QualType T) {
1174 llvm::Constant *VisitMaterializeTemporaryExpr(MaterializeTemporaryExpr *E,
1179 llvm::Constant *EmitArrayInitialization(InitListExpr *ILE, QualType T) {
1192 llvm::Constant *fillC = nullptr;
1200 SmallVector<llvm::Constant*, 16> Elts;
1209 llvm::Constant *C = Emitter.tryEmitPrivateForMemory(Init, EltType);
1225 llvm::Constant *EmitRecordInitialization(InitListExpr *ILE, QualType T) {
1229 llvm::Constant *VisitImplicitValueInitExpr(ImplicitValueInitExpr* E,
1234 llvm::Constant *VisitInitListExpr(InitListExpr *ILE, QualType T) {
1247 llvm::Constant *VisitDesignatedInitUpdateExpr(DesignatedInitUpdateExpr *E,
1267 llvm::Constant *VisitCXXConstructExpr(CXXConstructExpr *E, QualType Ty) {
1299 llvm::Constant *VisitStringLiteral(StringLiteral *E, QualType T) {
1304 llvm::Constant *VisitObjCEncodeExpr(ObjCEncodeExpr *E, QualType T) {
1318 llvm::Constant *VisitUnaryExtension(const UnaryOperator *E, QualType T) {
1330 llvm::Constant *ConstantEmitter::validateAndPopAbstract(llvm::Constant *C,
1330 llvm::Constant *ConstantEmitter::validateAndPopAbstract(llvm::Constant *C,
1342 llvm::Constant *
1349 llvm::Constant *
1356 llvm::Constant *
1363 llvm::Constant *
1376 llvm::Constant *
1390 llvm::Constant *ConstantEmitter::tryEmitForInitializer(const VarDecl &D) {
1395 llvm::Constant *ConstantEmitter::tryEmitForInitializer(const Expr *E,
1402 llvm::Constant *ConstantEmitter::emitForInitializer(const APValue &value,
1431 void ConstantEmitter::registerCurrentAddrPrivate(llvm::Constant *signal,
1444 llvm::Constant *Base;
1448 llvm::DenseMap<llvm::Constant*, llvm::GlobalVariable*> PlaceholderAddresses;
1451 llvm::DenseMap<llvm::GlobalVariable*, llvm::Constant*> Locations;
1457 llvm::SmallVector<llvm::Constant*, 8> IndexValues;
1459 ReplacePlaceholders(CodeGenModule &CGM, llvm::Constant *base,
1460 ArrayRef<std::pair<llvm::Constant*,
1466 void replaceInInitializer(llvm::Constant *init) {
1497 void findLocations(llvm::Constant *init) {
1555 llvm::Constant *location =
1596 llvm::Constant *ConstantEmitter::tryEmitPrivateForVarInit(const VarDecl &D) {
1638 llvm::Constant *
1645 llvm::Constant *
1653 llvm::Constant *ConstantEmitter::tryEmitPrivateForMemory(const Expr *E,
1656 llvm::Constant *C = tryEmitPrivate(E, nonMemoryDestType);
1660 llvm::Constant *ConstantEmitter::tryEmitPrivateForMemory(const APValue &value,
1667 llvm::Constant *ConstantEmitter::emitForMemory(CodeGenModule &CGM,
1668 llvm::Constant *C,
1681 llvm::Constant *elts[] = {
1698 llvm::Constant *ConstantEmitter::tryEmitPrivate(const Expr *E,
1709 llvm::Constant *C;
1718 llvm::Constant *CodeGenModule::getNullPointer(llvm::PointerType *T, QualType QT) {
1726 llvm::Constant *Value;
1729 /*implicit*/ ConstantLValue(llvm::Constant *value,
1753 llvm::Constant *tryEmit();
1756 llvm::Constant *tryEmitAbsolute(llvm::Type *destTy);
1780 llvm::Constant *getOffset() {
1786 llvm::Constant *applyOffset(llvm::Constant *C) {
1786 llvm::Constant *applyOffset(llvm::Constant *C) {
1802 llvm::Constant *ConstantLValueEmitter::tryEmit() {
1825 llvm::Constant *value = result.Value;
1843 llvm::Constant *
1856 llvm::Constant *C;
1893 llvm::Constant *TypeInfo =
1952 llvm::Constant *Ptr = Emitter.CGF->GetAddrOfLabel(E->getLabel());
2011 llvm::Constant *ConstantEmitter::tryEmitPrivate(const APValue &Value,
2026 llvm::Constant *Complex[2];
2049 llvm::Constant *Complex[2];
2063 SmallVector<llvm::Constant *, 4> Inits(NumElts);
2079 llvm::Constant *LHS = tryEmitPrivate(LHSExpr, LHSExpr->getType());
2080 llvm::Constant *RHS = tryEmitPrivate(RHSExpr, RHSExpr->getType());
2087 llvm::Constant *AddrLabelDiff = llvm::ConstantExpr::getSub(LHS, RHS);
2104 llvm::Constant *Filler = nullptr;
2113 SmallVector<llvm::Constant*, 16> Elts;
2121 llvm::Constant *C = tryEmitPrivateForMemory(
2171 llvm::Constant *
2187 static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM,
2191 static llvm::Constant *EmitNullConstant(CodeGenModule &CGM,
2200 std::vector<llvm::Constant *> elements(numElements);
2269 elements[i] = llvm::Constant::getNullValue(structure->getElementType(i));
2276 static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM,
2283 return llvm::Constant::getNullValue(baseType);
2289 llvm::Constant *ConstantEmitter::emitNullForMemory(CodeGenModule &CGM,
2294 llvm::Constant *CodeGenModule::EmitNullConstant(QualType T) {
2300 return llvm::Constant::getNullValue(getTypes().ConvertTypeForMem(T));
2308 llvm::Constant *Element =
2311 SmallVector<llvm::Constant *, 8> Array(NumElements, Element);
2324 llvm::Constant *
tools/clang/lib/CodeGen/CGExprScalar.cpp 387 llvm::Value *Zero = llvm::Constant::getNullValue(V->getType());
932 llvm::Constant *StaticArgs[] = {CGF.EmitCheckSourceLocation(Loc),
1019 llvm::Constant *StaticArgs[] = {
1063 llvm::Constant *Zero = llvm::ConstantInt::get(VTy, 0);
1159 llvm::Constant *StaticArgs[] = {
1444 Value *Zero = llvm::Constant::getNullValue(Result->getType());
1536 SmallVector<llvm::Constant *, 4> StaticData;
1631 SmallVector<llvm::Constant*, 32> indices;
1682 llvm::Value *Zero = llvm::Constant::getNullValue(SrcTy);
1757 static llvm::Constant *getMaskElt(llvm::ShuffleVectorInst *SVI, unsigned Idx,
1765 static llvm::Constant *getAsInt32(llvm::ConstantInt *C, llvm::Type *I32Ty) {
1809 SmallVector<llvm::Constant*, 16> Args;
1845 llvm::Constant *Mask = llvm::ConstantVector::get(Args);
1898 llvm::Constant *Mask = llvm::ConstantVector::get(Args);
1914 llvm::Constant *Mask = llvm::ConstantVector::get(Args);
1927 llvm::Value *Init = llvm::Constant::getNullValue(EltTy);
2282 return llvm::Constant::getNullValue(ConvertType(DestTy));
2596 BinOp.LHS = llvm::Constant::getNullValue(BinOp.RHS->getType());
2614 Value *Zero = llvm::Constant::getNullValue(Oper->getType());
2646 llvm::Value* Result = llvm::Constant::getNullValue(ResultType);
2805 return llvm::Constant::getNullValue(ConvertType(E->getType()));
3000 llvm::Value *Zero = llvm::Constant::getNullValue(ConvertType(Ops.Ty));
3005 llvm::Value *Zero = llvm::Constant::getNullValue(ConvertType(Ops.Ty));
3042 llvm::Value *Zero = llvm::Constant::getNullValue(ConvertType(Ops.Ty));
3863 LHS.second = llvm::Constant::getNullValue(LHS.first->getType());
3874 RHS.second = llvm::Constant::getNullValue(RHS.first->getType());
3997 return llvm::Constant::getNullValue(ResTy);
4202 llvm::Value *zeroVec = llvm::Constant::getNullValue(vecTy);
4331 SmallVector<llvm::Constant*, 4> Args;
4337 llvm::Constant *Mask = llvm::ConstantVector::get(Args);
4566 if (isa<llvm::Constant>(GEPVal)) {
4585 auto *Zero = llvm::ConstantInt::getNullValue(IntPtrTy);
4634 auto *ElementSize = llvm::ConstantInt::get(
4669 !isa<llvm::Constant>(GEPVal) && PtrTy->getPointerAddressSpace() == 0;
4687 auto *Zero = llvm::ConstantInt::getNullValue(IntPtrTy);
4760 llvm::Constant *StaticArgs[] = {EmitCheckSourceLocation(Loc)};
tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp 228 static llvm::Constant *getNullForVariable(Address Addr) {
655 llvm::Constant *SizeVal = CGF->Builder.getInt64(Size.getQuantity());
tools/clang/lib/CodeGen/CGObjC.cpp 39 static llvm::Constant *getNullForVariable(Address addr) {
47 llvm::Constant *C =
98 llvm::Constant *GV = CGM.GetAddrOfConstantCString(Str).getPointer();
131 llvm::Constant *Constant =
955 llvm::Constant *AtomicHelperFn =
995 llvm::Constant *AtomicHelperFn) {
1025 llvm::Constant *AtomicHelperFn) {
1247 llvm::Constant *AtomicHelperFn) {
1313 llvm::Constant *AtomicHelperFn) {
1491 llvm::Constant *AtomicHelperFn =
1700 llvm::Constant *Count = llvm::ConstantInt::get(NSUIntegerTy, NumItems);
1715 llvm::Value *zero = llvm::Constant::getNullValue(NSUIntegerTy);
1899 llvm::Value *null = llvm::Constant::getNullValue(convertedElementType);
3483 llvm::Constant *
3495 llvm::Constant *HelperFn = nullptr;
3567 llvm::Constant *
3579 llvm::Constant *HelperFn = nullptr;
3711 return Builder.CreateICmpNE(CallRes, llvm::Constant::getNullValue(Int32Ty));
3747 llvm::Constant::getNullValue(VoidPtrTy));
tools/clang/lib/CodeGen/CGObjCGNU.cpp 204 llvm::Constant *MakeConstantString(StringRef Str, const char *Name = "") {
214 llvm::Constant *ExportUniqueString(const std::string &Str,
220 llvm::Constant *value = llvm::ConstantDataArray::getString(VMContext,Str);
233 llvm::Constant *MakePropertyEncodingString(const ObjCPropertyDecl *PD,
279 virtual llvm::Constant *GenerateCategoryProtocolList(const
308 llvm::Constant *TypeEncoding = MakeConstantString(TypeStr);
334 llvm::Constant *Zeros[2];
336 llvm::Constant *NULLPtr;
353 std::vector<llvm::Constant*> Classes;
355 std::vector<llvm::Constant*> Categories;
358 std::vector<llvm::Constant*> ConstantStrings;
362 llvm::StringMap<llvm::Constant*> ObjCStrings;
364 llvm::StringMap<llvm::Constant*> ExistingProtocols;
443 virtual llvm::Constant *GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
443 virtual llvm::Constant *GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
444 ArrayRef<llvm::Constant *> IvarTypes,
445 ArrayRef<llvm::Constant *> IvarOffsets,
446 ArrayRef<llvm::Constant *> IvarAlign,
454 llvm::Constant *GenerateMethodList(StringRef ClassName,
462 virtual llvm::Constant *GenerateEmptyProtocol(StringRef ProtocolName);
466 llvm::Constant *GeneratePropertyList(const Decl *Container,
473 llvm::Constant *GenerateProtocolList(ArrayRef<std::string> Protocols);
482 llvm::Constant *GenerateClassStructure(
483 llvm::Constant *MetaClass,
484 llvm::Constant *SuperClass,
487 llvm::Constant *Version,
488 llvm::Constant *InstanceSize,
489 llvm::Constant *IVars,
490 llvm::Constant *Methods,
491 llvm::Constant *Protocols,
492 llvm::Constant *IvarOffsets,
493 llvm::Constant *Properties,
494 llvm::Constant *StrongIvarBitmap,
495 llvm::Constant *WeakIvarBitmap,
500 virtual llvm::Constant *GenerateProtocolMethodList(
504 void EmitProtocolMethodList(T &&Methods, llvm::Constant *&Required,
505 llvm::Constant *&Optional) {
570 llvm::Constant *MakeBitField(ArrayRef<bool> bits);
597 virtual llvm::Constant *GetConstantSelector(Selector Sel,
601 llvm::Constant *GetConstantSelector(const ObjCMethodDecl *M) {
605 llvm::Constant *GetEHType(QualType T) override;
654 llvm::Constant *BuildGCBlockLayout(CodeGenModule &CGM,
658 llvm::Constant *BuildRCBlockLayout(CodeGenModule &CGM,
663 llvm::Constant *BuildByrefLayout(CodeGenModule &CGM, QualType T) override {
745 llvm::Constant *GetEHType(QualType T) override;
943 typedef std::pair<std::string, std::pair<llvm::Constant*, int>> EarlyInitPair;
973 llvm::StringMap<llvm::Constant*>::iterator old = ObjCStrings.find(Str);
994 auto *ObjCStr = llvm::ConstantExpr::getIntToPtr(
1006 llvm::Constant *isa = TheModule.getNamedGlobal(Sym);
1061 auto *C = llvm::ConstantDataArray::get(VMContext, Arr);
1105 std::pair<llvm::Constant*, int> v{ObjCStrGV, 0};
1108 llvm::Constant *ObjCStr = llvm::ConstantExpr::getBitCast(ObjCStrGV, IdTy);
1149 llvm::Constant *
1186 llvm::Constant *GenerateCategoryProtocolList(const ObjCCategoryDecl *OCD)
1188 SmallVector<llvm::Constant*, 16> Protocols;
1282 llvm::Constant *GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
1282 llvm::Constant *GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
1283 ArrayRef<llvm::Constant *> IvarTypes,
1284 ArrayRef<llvm::Constant *> IvarOffsets,
1285 ArrayRef<llvm::Constant *> IvarAlign,
1290 llvm::Constant *GenerateEmptyProtocol(StringRef ProtocolName) override {
1303 llvm::StringMap<llvm::Constant*> ExistingProtocolRefs;
1308 auto *&Ref = ExistingProtocolRefs[Name];
1310 auto *&Protocol = ExistingProtocols[Name];
1328 llvm::Constant *GenerateProtocolList(ArrayRef<llvm::Constant*> Protocols) {
1328 llvm::Constant *GenerateProtocolList(ArrayRef<llvm::Constant*> Protocols) {
1331 llvm::Constant * ProtocolArray = llvm::ConstantArray::get(ProtocolArrayTy,
1345 llvm::Constant *GenerateProtocolRef(const ObjCProtocolDecl *PD) {
1347 auto *&Protocol = ExistingProtocols[ProtocolName];
1370 SmallVector<llvm::Constant*, 16> Protocols;
1375 llvm::Constant *ProtocolList = GenerateProtocolList(Protocols);
1378 llvm::Constant *InstanceMethodList, *OptionalInstanceMethodList;
1379 llvm::Constant *ClassMethodList, *OptionalClassMethodList;
1419 llvm::Constant *EnforceType(llvm::Constant *Val, llvm::Type *Ty) {
1419 llvm::Constant *EnforceType(llvm::Constant *Val, llvm::Type *Ty) {
1428 llvm::Constant *GetTypeString(llvm::StringRef TypeEncoding) {
1437 llvm::Constant *Init = llvm::ConstantDataArray::getString(VMContext,
1448 llvm::Constant *GetConstantSelector(Selector Sel,
1471 auto *SelVal = EnforceType(GV, SelectorTy);
1483 std::pair<llvm::Constant*,llvm::Constant*>
1483 std::pair<llvm::Constant*,llvm::Constant*>
1490 auto ZeroInit = llvm::Constant::getNullValue(emptyStruct);
1576 for (auto *C : Categories) {
1584 for (auto *F : Init)
1695 auto *classNameConstant = MakeConstantString(className);
1759 llvm::Constant *SuperClass = nullptr;
1836 llvm::Constant *OffsetValue = llvm::ConstantInt::get(IntTy, Offset);
1909 SmallVector<llvm::Constant*, 16> Protocols;
1941 std::pair<llvm::Constant*, int> v{classStruct, 1};
2270 llvm::Constant *ClassName = MakeConstantString(Name);
2359 llvm::Constant *CGObjCGNU::GetEHType(QualType T) {
2380 llvm::Constant *CGObjCGNUstep::GetEHType(QualType T) {
2393 llvm::Constant *IDEHType =
2414 llvm::Constant *typeinfo = TheModule.getGlobalVariable(typeinfoName);
2430 llvm::Constant *Two = llvm::ConstantInt::get(IntTy, 2);
2431 auto *BVtable = llvm::ConstantExpr::getBitCast(
2435 llvm::Constant *typeName =
2442 llvm::Constant *TI =
2457 llvm::StringMap<llvm::Constant*>::iterator old = ObjCStrings.find(Str);
2468 llvm::Constant *isa = TheModule.getNamedGlobal(Sym);
2481 llvm::Constant *ObjCStr =
2658 llvm::Constant::getNullValue(Receiver->getType()));
2736 phi->addIncoming(llvm::Constant::getNullValue(v->getType()), startBB);
2743 CGF.InitTempAlloca(NullVal, llvm::Constant::getNullValue(RetTy));
2751 phi->addIncoming(llvm::Constant::getNullValue(v.first->getType()),
2755 phi2->addIncoming(llvm::Constant::getNullValue(v.second->getType()),
2765 llvm::Constant *CGObjCGNU::
2809 llvm::Constant *FnPtr =
2835 llvm::Constant *CGObjCGNU::
2836 GenerateIvarList(ArrayRef<llvm::Constant *> IvarNames,
2837 ArrayRef<llvm::Constant *> IvarTypes,
2838 ArrayRef<llvm::Constant *> IvarOffsets,
2839 ArrayRef<llvm::Constant *> IvarAlign,
2871 llvm::Constant *CGObjCGNU::GenerateClassStructure(
2872 llvm::Constant *MetaClass,
2873 llvm::Constant *SuperClass,
2876 llvm::Constant *Version,
2877 llvm::Constant *InstanceSize,
2878 llvm::Constant *IVars,
2879 llvm::Constant *Methods,
2880 llvm::Constant *Protocols,
2881 llvm::Constant *IvarOffsets,
2882 llvm::Constant *Properties,
2883 llvm::Constant *StrongIvarBitmap,
2884 llvm::Constant *WeakIvarBitmap,
2971 llvm::Constant *Class =
2983 llvm::Constant *CGObjCGNU::
3005 llvm::Constant *
3016 llvm::Constant *protocol = nullptr;
3017 llvm::StringMap<llvm::Constant*>::iterator value =
3033 llvm::Constant *&protocol = ExistingProtocols[PD->getNameAsString()];
3041 llvm::Constant *
3043 llvm::Constant *ProtocolList = GenerateProtocolList({});
3044 llvm::Constant *MethodList = GenerateProtocolMethodList({});
3094 llvm::Constant *ProtocolList = GenerateProtocolList(Protocols);
3095 llvm::Constant *InstanceMethodList =
3097 llvm::Constant *ClassMethodList =
3099 llvm::Constant *OptionalInstanceMethodList =
3101 llvm::Constant *OptionalClassMethodList =
3110 llvm::Constant *PropertyList =
3112 llvm::Constant *OptionalPropertyList =
3185 llvm::Constant *CGObjCGNU::MakeBitField(ArrayRef<bool> bits) {
3195 SmallVector<llvm::Constant *, 8> values;
3213 llvm::Constant *GS =
3215 llvm::Constant *ptr = llvm::ConstantExpr::getPtrToInt(GS, IntPtrTy);
3219 llvm::Constant *CGObjCGNU::GenerateCategoryProtocolList(const
3277 llvm::Constant *CGObjCGNU::GeneratePropertyList(const Decl *Container,
3408 SmallVector<llvm::Constant*, 16> IvarNames;
3409 SmallVector<llvm::Constant*, 16> IvarTypes;
3410 SmallVector<llvm::Constant*, 16> IvarOffsets;
3411 SmallVector<llvm::Constant*, 16> IvarAligns;
3443 llvm::Constant *OffsetValue = llvm::ConstantInt::get(IntTy, Offset);
3477 llvm::Constant *StrongIvarBitmap = MakeBitField(StrongIvars);
3478 llvm::Constant *WeakIvarBitmap = MakeBitField(WeakIvars);
3506 llvm::Constant *Properties = GeneratePropertyList(OID, ClassDecl);
3514 llvm::Constant *SuperClass;
3521 SmallVector<llvm::Constant*, 1> empty;
3523 llvm::Constant *MethodList = GenerateMethodList(ClassName, "",
3525 llvm::Constant *ClassMethodList = GenerateMethodList(ClassName, "",
3527 llvm::Constant *IvarList = GenerateIvarList(IvarNames, IvarTypes,
3540 llvm::Constant *offsetPointerIndexes[] = {Zeros[0],
3550 llvm::Constant *offsetValue = llvm::ConstantExpr::getGetElementPtr(
3567 llvm::Constant *ZeroPtr = llvm::ConstantInt::get(IntPtrTy, 0);
3570 llvm::Constant *MetaClassStruct = GenerateClassStructure(
3578 llvm::Constant *ClassStruct = GenerateClassStructure(
3624 llvm::Constant *statics = NULLPtr;
3671 llvm::Constant *selName = ExportUniqueString(selNameStr, ".objc_sel_name");
3674 llvm::Constant *selectorTypeEncoding = NULLPtr;
3707 llvm::Constant *idxs[] = {
3712 llvm::Constant *selPtr = llvm::ConstantExpr::getGetElementPtr(
3750 llvm::Constant *module = [&] {
3826 llvm::Constant::getNullValue(RegisterAlias->getType()));
3834 llvm::Constant *TheClass =
4089 llvm::Constant::getNullValue(IntTy), name);
tools/clang/lib/CodeGen/CGObjCMac.cpp 930 llvm::Constant *GetMethodVarName(Selector Sel);
931 llvm::Constant *GetMethodVarName(IdentifierInfo *Ident);
937 llvm::Constant *GetMethodVarType(const ObjCMethodDecl *D,
939 llvm::Constant *GetMethodVarType(const FieldDecl *D);
943 llvm::Constant *GetPropertyName(IdentifierInfo *Ident);
946 llvm::Constant *GetPropertyTypeString(const ObjCPropertyDecl *PD,
952 llvm::Constant *GetClassName(StringRef RuntimeName);
963 llvm::Constant *BuildIvarLayout(const ObjCImplementationDecl *OI,
969 llvm::Constant *BuildStrongIvarLayout(const ObjCImplementationDecl *OI,
975 llvm::Constant *BuildWeakIvarLayout(const ObjCImplementationDecl *OI,
1001 llvm::Constant *getBitmapBlockLayout(bool ComputeByrefLayout);
1005 llvm::Constant *GetIvarLayoutName(IdentifierInfo *Ident,
1010 llvm::Constant *EmitPropertyList(Twine Name,
1018 llvm::Constant *EmitProtocolMethodTypes(Twine Name,
1019 ArrayRef<llvm::Constant*> MethodTypes,
1025 llvm::Constant *GetProtocolRef(const ObjCProtocolDecl *PD);
1055 llvm::Constant *Init,
1100 virtual llvm::Constant *GetOrEmitProtocol(const ObjCProtocolDecl *PD)=0;
1106 virtual llvm::Constant *GetOrEmitProtocolRef(const ObjCProtocolDecl *PD)=0;
1108 virtual llvm::Constant *getNSConstantStringClassRef() = 0;
1110 llvm::Constant *BuildGCBlockLayout(CodeGen::CodeGenModule &CGM,
1112 llvm::Constant *BuildRCBlockLayout(CodeGen::CodeGenModule &CGM,
1117 llvm::Constant *BuildByrefLayout(CodeGen::CodeGenModule &CGM,
1180 SmallVector<llvm::Constant*, 8> emitExtendedTypesArray(Self *self) const {
1187 SmallVector<llvm::Constant*, 8> result;
1200 llvm::Constant *emitMethodList(Self *self, const ObjCProtocolDecl *PD,
1221 llvm::Constant *EmitModuleSymbols();
1230 llvm::Constant *EmitClassExtension(const ObjCImplementationDecl *ID,
1253 llvm::Constant *EmitIvarList(const ObjCImplementationDecl *ID,
1259 llvm::Constant *EmitMetaClassRef(const ObjCInterfaceDecl *ID);
1263 llvm::Constant *EmitMetaClass(const ObjCImplementationDecl *ID,
1264 llvm::Constant *Protocols,
1275 llvm::Constant *emitMethodList(Twine Name, MethodListType MLT,
1281 llvm::Constant *GetOrEmitProtocol(const ObjCProtocolDecl *PD) override;
1287 llvm::Constant *GetOrEmitProtocolRef(const ObjCProtocolDecl *PD) override;
1293 llvm::Constant *
1299 llvm::Constant *EmitProtocolList(Twine Name,
1311 llvm::Constant *getNSConstantStringClassRef() override;
1342 llvm::Constant *GetEHType(QualType T) override;
1399 llvm::Constant* ObjCEmptyVtableVar;
1436 llvm::Constant *IsAGV,
1437 llvm::Constant *SuperClassGV,
1438 llvm::Constant *ClassRoGV,
1447 llvm::Constant *emitMethodList(Twine Name, MethodListType MLT,
1455 llvm::Constant *EmitIvarList(const ObjCImplementationDecl *ID);
1457 llvm::Constant *EmitIvarOffsetVar(const ObjCInterfaceDecl *ID,
1464 llvm::Constant *GetOrEmitProtocol(const ObjCProtocolDecl *PD) override;
1470 llvm::Constant *GetOrEmitProtocolRef(const ObjCProtocolDecl *PD) override;
1474 llvm::Constant *EmitProtocolList(Twine Name,
1490 llvm::Constant *GetClassGlobal(StringRef Name,
1493 llvm::Constant *GetClassGlobal(const ObjCInterfaceDecl *ID,
1497 llvm::Constant *GetClassGlobalForClassRef(const ObjCInterfaceDecl *ID);
1538 llvm::Constant *GetInterfaceEHType(const ObjCInterfaceDecl *ID,
1596 llvm::Constant *getNSConstantStringClassRef() override;
1639 llvm::Constant *GetEHType(QualType T) override;
1778 llvm::Constant *null = CGF.CGM.EmitNullConstant(resultType);
1809 llvm::Constant *scalarZero = llvm::Constant::getNullValue(scalarTy);
1809 llvm::Constant *scalarZero = llvm::Constant::getNullValue(scalarTy);
1827 static llvm::Constant *getConstantGEP(llvm::LLVMContext &VMContext,
1897 llvm::Constant *CGObjCMac::GetEHType(QualType T) {
1948 llvm::Constant *CGObjCMac::getNSConstantStringClassRef() {
1950 return cast<llvm::Constant>(V);
1964 llvm::Constant *CGObjCNonFragileABIMac::getNSConstantStringClassRef() {
1966 return cast<llvm::Constant>(V);
1972 llvm::Constant *GV = GetClassGlobal(str, NotForDefinition);
1991 llvm::Constant *Class = getNSConstantStringClassRef();
2010 llvm::Constant *C =
2086 llvm::Constant *MetaClassPtr = EmitMetaClassRef(Class);
2213 llvm::Constant *BitcastFn = cast<llvm::Constant>(
2213 llvm::Constant *BitcastFn = cast<llvm::Constant>(
2342 llvm::Constant *buildBitmap(CGObjCCommonMac &CGObjC,
2357 llvm::Constant *CGObjCCommonMac::BuildGCBlockLayout(CodeGenModule &CGM,
2360 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy);
2360 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy);
2373 llvm::Constant *C = builder.buildBitmap(*this, buffer);
2718 llvm::Constant *CGObjCCommonMac::getBitmapBlockLayout(bool ComputeByrefLayout) {
2719 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy);
2719 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy);
2953 llvm::Constant *
2967 llvm::Constant *CGObjCCommonMac::BuildByrefLayout(CodeGen::CodeGenModule &CGM,
2976 llvm::Constant *Result = getBitmapBlockLayout(true);
2981 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy);
2981 llvm::Constant *nullPtr = llvm::Constant::getNullValue(CGM.Int8PtrTy);
3007 llvm::Constant *CGObjCCommonMac::GetProtocolRef(const ObjCProtocolDecl *PD) {
3045 llvm::Constant *CGObjCMac::GetOrEmitProtocol(const ObjCProtocolDecl *PD) {
3092 llvm::Constant *CGObjCMac::GetOrEmitProtocolRef(const ObjCProtocolDecl *PD) {
3120 llvm::Constant *
3148 return llvm::Constant::getNullValue(ObjCTypes.ProtocolExtensionPtrTy);
3175 llvm::Constant *
3181 return llvm::Constant::getNullValue(ObjCTypes.ProtocolListPtrTy);
3242 llvm::Constant *CGObjCCommonMac::EmitPropertyList(Twine Name,
3253 return llvm::Constant::getNullValue(ObjCTypes.PropertyListPtrTy);
3289 return llvm::Constant::getNullValue(ObjCTypes.PropertyListPtrTy);
3317 llvm::Constant *
3319 ArrayRef<llvm::Constant*> MethodTypes,
3323 return llvm::Constant::getNullValue(ObjCTypes.Int8PtrPtrTy);
3327 llvm::Constant *Init = llvm::ConstantArray::get(AT, MethodTypes);
3528 llvm::Constant *Protocols =
3620 llvm::Constant *CGObjCMac::EmitMetaClass(const ObjCImplementationDecl *ID,
3621 llvm::Constant *Protocols,
3683 llvm::Constant *CGObjCMac::EmitMetaClassRef(const ObjCInterfaceDecl *ID) {
3730 llvm::Constant *
3735 llvm::Constant *layout;
3744 llvm::Constant *propertyList =
3752 return llvm::Constant::getNullValue(ObjCTypes.ClassExtensionPtrTy);
3781 llvm::Constant *CGObjCMac::EmitIvarList(const ObjCImplementationDecl *ID,
3789 return llvm::Constant::getNullValue(ObjCTypes.IvarListPtrTy);
3816 return llvm::Constant::getNullValue(ObjCTypes.IvarListPtrTy);
3883 llvm::Constant *CGObjCMac::emitMethodList(Twine name, MethodListType MLT,
3933 return llvm::Constant::getNullValue(forProtocol
4006 llvm::Constant *Init,
4056 llvm::Constant *Value =
4514 llvm::Constant *Zero = llvm::ConstantInt::get(CGF.Builder.getInt32Ty(), 0);
5045 llvm::Constant *CGObjCMac::EmitModuleSymbols() {
5051 return llvm::Constant::getNullValue(ObjCTypes.SymtabPtrTy);
5091 llvm::Constant *Casted =
5129 llvm::Constant *Casted =
5141 llvm::Constant *CGObjCCommonMac::GetClassName(StringRef RuntimeName) {
5159 llvm::Constant *CGObjCCommonMac::GetIvarLayoutName(IdentifierInfo *Ident,
5161 return llvm::Constant::getNullValue(ObjCTypes.Int8PtrTy);
5264 llvm::Constant *IvarLayoutBuilder::buildBitmap(CGObjCCommonMac &CGObjC,
5418 llvm::Constant *
5428 return llvm::Constant::getNullValue(PtrTy);
5467 return llvm::Constant::getNullValue(PtrTy);
5477 return llvm::Constant::getNullValue(PtrTy);
5480 llvm::Constant *C = builder.buildBitmap(*this, buffer);
5491 llvm::Constant *CGObjCCommonMac::GetMethodVarName(Selector Sel) {
5500 llvm::Constant *CGObjCCommonMac::GetMethodVarName(IdentifierInfo *ID) {
5504 llvm::Constant *CGObjCCommonMac::GetMethodVarType(const FieldDecl *Field) {
5514 llvm::Constant *CGObjCCommonMac::GetMethodVarType(const ObjCMethodDecl *D,
5526 llvm::Constant *CGObjCCommonMac::GetPropertyName(IdentifierInfo *Ident) {
5535 llvm::Constant *
6058 SmallVector<llvm::Constant*, 8> Symbols(NumClasses);
6062 llvm::Constant *Init =
6299 llvm::Constant *IsAGV,
6300 llvm::Constant *SuperClassGV,
6301 llvm::Constant *ClassRoGV,
6399 llvm::Constant *SuperClassGV, *IsAGV;
6511 llvm::Constant *Init =
6656 llvm::Constant *
6661 return llvm::Constant::getNullValue(ObjCTypes.MethodListnfABIPtrTy);
6754 llvm::Constant *
6803 llvm::Constant *CGObjCNonFragileABIMac::EmitIvarList(
6848 return llvm::Constant::getNullValue(ObjCTypes.IvarListnfABIPtrTy);
6862 llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocolRef(
6904 llvm::Constant *CGObjCNonFragileABIMac::GetOrEmitProtocol(
7005 llvm::Constant *
7009 SmallVector<llvm::Constant *, 16> ProtocolRefs;
7013 return llvm::Constant::getNullValue(ObjCTypes.ProtocolListnfABIPtrTy);
7183 values.add(cast<llvm::Constant>(fn.getCallee()));
7243 llvm::Constant *
7257 llvm::Constant *
7286 llvm::Constant *
7288 llvm::Constant *ClassGV = GetClassGlobal(ID, /*metaclass*/ false,
7324 llvm::Constant *ClassGV;
7372 llvm::Constant *ClassGV = GetClassGlobalForClassRef(ID);
7491 llvm::Constant *Casted =
7629 llvm::Constant *
7683 llvm::Constant *
tools/clang/lib/CodeGen/CGObjCRuntime.cpp 122 llvm::Constant *TypeInfo;
tools/clang/lib/CodeGen/CGObjCRuntime.h 141 virtual llvm::Constant *GetEHType(QualType T) = 0;
275 virtual llvm::Constant *BuildGCBlockLayout(CodeGen::CodeGenModule &CGM,
277 virtual llvm::Constant *BuildRCBlockLayout(CodeGen::CodeGenModule &CGM,
285 virtual llvm::Constant *BuildByrefLayout(CodeGen::CodeGenModule &CGM,
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp 828 llvm::Constant *Init = CGF.CGM.EmitNullConstant(Ty);
1012 auto *ElemSizeOf = llvm::ConstantExpr::getSizeOf(ElemType);
1524 ArrayRef<llvm::Constant *> Data) {
1533 Fields.add(llvm::Constant::getNullValue(StructTy->getElementType(I)));
1543 ArrayRef<llvm::Constant *> Data, const Twine &Name,
1558 ArrayRef<llvm::Constant *> Data,
1584 llvm::Constant *Data[] = {
2701 registerTargetGlobalVariable(VD, cast<llvm::Constant>(Ptr));
2708 llvm::Constant *
2841 CopyCtor = llvm::Constant::getNullValue(CopyCtorTy);
2846 Ctor = llvm::Constant::getNullValue(CtorTy);
2852 Dtor = llvm::Constant::getNullValue(DtorTy);
2909 llvm::Constant *Ctor;
2910 llvm::Constant *ID;
2936 llvm::Constant::getNullValue(CGM.Int8Ty), Twine(Buffer, "_ctor"));
2947 llvm::Constant *Dtor;
2948 llvm::Constant *ID;
2975 llvm::Constant::getNullValue(CGM.Int8Ty), Twine(Buffer, "_dtor"));
3133 llvm::Constant *CGOpenMPRuntime::getOrCreateInternalVariable(
3148 llvm::GlobalValue::CommonLinkage, llvm::Constant::getNullValue(Ty),
3901 llvm::Constant *Addr, llvm::Constant *ID,
3901 llvm::Constant *Addr, llvm::Constant *ID,
3969 registerDeviceGlobalVarEntryInfo(StringRef VarName, llvm::Constant *Addr,
4017 llvm::Constant *ID, llvm::Constant *Addr, uint64_t Size, int32_t Flags,
4017 llvm::Constant *ID, llvm::Constant *Addr, uint64_t Size, int32_t Flags,
4024 llvm::Constant *StrPtrInit = llvm::ConstantDataArray::getString(C, Name);
4032 llvm::Constant *Data[] = {llvm::ConstantExpr::getBitCast(ID, CGM.VoidPtrTy),
6463 llvm::Function *&OutlinedFn, llvm::Constant *&OutlinedFnID,
6473 llvm::Function *&OutlinedFn, llvm::Constant *&OutlinedFnID,
6529 llvm::Constant::getNullValue(CGM.Int8Ty), Name);
8011 Sizes.push_back(llvm::Constant::getNullValue(CGF.Int64Ty));
8067 CurSizes.push_back(llvm::Constant::getNullValue(this->CGF.Int64Ty));
8496 CurSizes.push_back(llvm::Constant::getNullValue(CGF.Int64Ty));
8516 llvm::Constant *Addr =
8572 if (!isa<llvm::Constant>(S)) {
8601 SmallVector<llvm::Constant *, 16> ConstSizes;
8603 ConstSizes.push_back(cast<llvm::Constant>(S));
8605 auto *SizesArrayInit = llvm::ConstantArray::get(
8620 llvm::Constant *MapTypesArrayInit =
9644 llvm::Constant *
9650 llvm::Constant *Addr;
9679 llvm::Constant *Addr) {
9715 llvm::Constant *AddrRef =
9739 Addr = cast<llvm::Constant>(getAddrOfDeclareTargetVar(VD).getPointer());
10100 llvm::Constant *PointerNum =
11361 llvm::Function *&OutlinedFn, llvm::Constant *&OutlinedFnID,
tools/clang/lib/CodeGen/CGOpenMPRuntime.h 224 virtual void createOffloadEntry(llvm::Constant *ID, llvm::Constant *Addr,
224 virtual void createOffloadEntry(llvm::Constant *ID, llvm::Constant *Addr,
240 llvm::Constant *&OutlinedFnID,
322 llvm::Constant *DefaultOpenMPPSource = nullptr;
375 llvm::StringMap<llvm::AssertingVH<llvm::Constant>, llvm::BumpPtrAllocator>
473 llvm::Constant *getAddress() const {
474 return cast_or_null<llvm::Constant>(Addr);
476 void setAddress(llvm::Constant *V) {
518 llvm::Constant *ID = nullptr;
524 llvm::Constant *Addr,
525 llvm::Constant *ID,
532 llvm::Constant *getID() const { return ID; }
533 void setID(llvm::Constant *V) {
549 llvm::Constant *Addr, llvm::Constant *ID,
549 llvm::Constant *Addr, llvm::Constant *ID,
587 unsigned Order, llvm::Constant *Addr, CharUnits VarSize,
611 registerDeviceGlobalVarEntryInfo(StringRef VarName, llvm::Constant *Addr,
730 llvm::Constant *getOrCreateThreadPrivateCache(const VarDecl *VD);
738 llvm::Constant *getOrCreateInternalVariable(llvm::Type *Ty,
1433 llvm::Constant *&OutlinedFnID,
1471 llvm::Constant *Addr);
1475 llvm::Constant *registerTargetFirstprivateCopy(CodeGenFunction &CGF,
2123 llvm::Constant *&OutlinedFnID,
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp 1141 llvm::Constant *&OutlinedFnID,
1273 llvm::Constant *&OutlinedFnID,
1433 CGF.InitTempAlloca(WorkFn, llvm::Constant::getNullValue(CGF.Int8PtrTy));
1834 void CGOpenMPRuntimeNVPTX::createOffloadEntry(llvm::Constant *ID,
1835 llvm::Constant *Addr,
1858 llvm::Function *&OutlinedFn, llvm::Constant *&OutlinedFnID,
2767 CGF.EmitStoreOfScalar(llvm::Constant::getNullValue(CGM.Int32Ty), CounterLVal,
3216 llvm::Constant::getNullValue(Ty), TransferMediumName,
3261 CGF.EmitStoreOfScalar(llvm::Constant::getNullValue(CGM.IntTy), CntAddr,
3303 TransferMedium, {llvm::Constant::getNullValue(CGM.Int64Ty), WarpID});
3349 {llvm::Constant::getNullValue(CGM.Int64Ty), ThreadID});
4755 llvm::Constant::getNullValue(VarTy), VD->getName(),
4767 llvm::Constant::getNullValue(VarTy), VD->getName(),
4780 llvm::Constant::getNullValue(VarTy), VD->getName());
5128 llvm::Constant::getNullValue(LLVMStaticTy),
5132 auto *Replacement = llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(
5158 llvm::Constant::getNullValue(LLVMArr2Ty),
5160 auto *Replacement = llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(
5193 llvm::Constant::getNullValue(LLVMReductionsBufferTy),
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h 97 void createOffloadEntry(llvm::Constant *ID, llvm::Constant *Addr,
97 void createOffloadEntry(llvm::Constant *ID, llvm::Constant *Addr,
112 llvm::Constant *&OutlinedFnID, bool IsOffloadEntry,
128 llvm::Constant *&OutlinedFnID, bool IsOffloadEntry,
143 llvm::Constant *&OutlinedFnID,
tools/clang/lib/CodeGen/CGStmt.cpp 1055 llvm::Constant *SLoc = EmitCheckSourceLocation(S.getBeginLoc());
1936 llvm::Constant *Loc = llvm::ConstantInt::get(CGF.Int32Ty,
tools/clang/lib/CodeGen/CGStmtOpenMP.cpp 2285 llvm::Constant *Addr;
3665 ScalarVal, llvm::Constant::getNullValue(ScalarVal->getType()));
4131 llvm::Constant *FnID = nullptr;
4213 llvm::Constant *Addr;
4299 llvm::Constant *Addr;
4345 llvm::Constant *Addr;
4391 llvm::Constant *Addr;
4533 llvm::Constant *Addr;
4585 llvm::Constant *Addr;
4861 llvm::Constant *Addr;
4901 llvm::Constant *Addr;
4940 llvm::Constant *Addr;
tools/clang/lib/CodeGen/CGVTT.cpp 59 SmallVector<llvm::Constant *, 8> VTTComponents;
82 llvm::Constant *Init = llvm::ConstantExpr::getGetElementPtr(
91 llvm::Constant *Init = llvm::ConstantArray::get(ArrayType, VTTComponents);
tools/clang/lib/CodeGen/CGVTables.cpp 33 llvm::Constant *CodeGenModule::GetAddrOfThunk(StringRef Name, llvm::Type *FnTy,
104 PHI->addIncoming(llvm::Constant::getNullValue(ReturnValue->getType()),
458 llvm::Constant *Callee = CGM.GetAddrOfFunction(GD, Ty, /*ForVTable=*/true);
487 llvm::Constant *CodeGenVTables::maybeEmitThunk(GlobalDecl GD,
503 llvm::Constant *Thunk = CGM.GetAddrOfThunk(Name, ThunkVTableTy, GD);
534 llvm::Constant *NewPtrForOldDecl =
620 unsigned idx, llvm::Constant *rtti, unsigned &nextVTableThunkIndex) {
681 llvm::Constant *fn = cast<llvm::Constant>(
681 llvm::Constant *fn = cast<llvm::Constant>(
688 llvm::Constant *fnPtr;
741 llvm::Constant *rtti) {
797 llvm::Constant *RTTI = CGM.GetAddrOfRTTIDescriptor(
tools/clang/lib/CodeGen/CGVTables.h 54 llvm::Constant *PureVirtualFn = nullptr;
57 llvm::Constant *DeletedVirtualFn = nullptr;
60 llvm::Constant *maybeEmitThunk(GlobalDecl GD,
66 llvm::Constant *rtti,
74 llvm::Constant *rtti);
tools/clang/lib/CodeGen/CGValue.h 182 llvm::Constant *VectorElts;
348 llvm::Constant *getExtVectorElts() const {
391 static LValue MakeExtVectorElt(Address vecAddress, llvm::Constant *Elts,
tools/clang/lib/CodeGen/CodeGenFunction.cpp 499 llvm::Constant *
501 llvm::Constant *Addr) {
514 auto *GOTAsInt = llvm::ConstantExpr::getPtrToInt(GV, IntPtrTy);
515 auto *FuncAsInt = llvm::ConstantExpr::getPtrToInt(F, IntPtrTy);
516 auto *PCRelAsInt = llvm::ConstantExpr::getSub(GOTAsInt, FuncAsInt);
630 static llvm::Constant *getPrologueSignature(CodeGenModule &CGM,
784 if (llvm::Constant *PrologueSig = getPrologueSignature(CGM, FD)) {
790 llvm::Constant *FTRTTIConst =
792 llvm::Constant *FTRTTIConstEncoded =
794 llvm::Constant *PrologueStructElems[] = {PrologueSig,
796 llvm::Constant *PrologueStructConst =
1666 llvm::Constant *NullConstant = CGM.EmitNullConstant(Ty);
1943 llvm::Value *Zero = llvm::Constant::getNullValue(Size->getType());
1944 llvm::Constant *StaticArgs[] = {
2371 llvm::Constant *StaticData[] = {EmitCheckSourceLocation(Loc),
tools/clang/lib/CodeGen/CodeGenFunction.h 1743 llvm::Constant *AtomicHelperFn);
1754 llvm::Constant *AtomicHelperFn);
1776 llvm::Constant *GenerateCopyHelperFunction(const CGBlockInfo &blockInfo);
1777 llvm::Constant *GenerateDestroyHelperFunction(const CGBlockInfo &blockInfo);
1778 llvm::Constant *GenerateObjCAtomicSetterCopyHelperFunction(
1780 llvm::Constant *GenerateObjCAtomicGetterCopyHelperFunction(
1995 llvm::Constant *EncodeAddrForUseInPrologue(llvm::Function *F,
1996 llvm::Constant *Addr);
2381 static unsigned getAccessedFieldNo(unsigned Idx, const llvm::Constant *Elts);
3528 llvm::PointerIntPair<llvm::Constant*, 1, bool> ValueAndIsReference;
3529 ConstantEmission(llvm::Constant *C, bool isReference)
3533 static ConstantEmission forReference(llvm::Constant *C) {
3536 static ConstantEmission forValue(llvm::Constant *C) {
3551 llvm::Constant *getValue() const {
3760 llvm::Value *EmitNeonSplat(llvm::Value *V, llvm::Constant *Idx);
3941 void EmitInvariantStart(llvm::Constant *Addr, CharUnits Size);
3945 void EmitCXXGlobalVarDeclInit(const VarDecl &D, llvm::Constant *DeclPtr,
3949 llvm::Constant *Addr);
3954 llvm::Constant *addr);
3957 void registerGlobalDtorWithAtExit(llvm::Constant *dtorStub);
3987 llvm::Constant *>> &DtorsAndObjects);
4098 llvm::Constant *EmitCheckTypeDescriptor(QualType T);
4106 llvm::Constant *EmitCheckSourceLocation(SourceLocation Loc);
4112 SanitizerHandler Check, ArrayRef<llvm::Constant *> StaticArgs,
4119 ArrayRef<llvm::Constant *> StaticArgs);
tools/clang/lib/CodeGen/CodeGenModule.cpp 225 void CodeGenModule::addReplacement(StringRef Name, llvm::Constant *C) {
232 llvm::Constant *Replacement = I.second;
260 void CodeGenModule::addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C) {
267 llvm::Constant *C = I.second;
279 const llvm::Constant *C = &GIS;
328 llvm::Constant *Aliasee = Alias->getIndirectSymbol();
1133 llvm::Constant *AssociatedData) {
1904 SmallVector<llvm::Constant*, 8> UsedArray;
1909 cast<llvm::Constant>(&*List[i]), CGM.Int8PtrTy);
2165 llvm::Constant *Array = llvm::ConstantArray::get(llvm::ArrayType::get(
2173 llvm::Constant *CodeGenModule::EmitAnnotationString(StringRef Str) {
2174 llvm::Constant *&AStr = AnnotationStrings[Str];
2179 llvm::Constant *s = llvm::ConstantDataArray::getString(getLLVMContext(), Str);
2189 llvm::Constant *CodeGenModule::EmitAnnotationUnit(SourceLocation Loc) {
2197 llvm::Constant *CodeGenModule::EmitAnnotationLineNo(SourceLocation L) {
2205 llvm::Constant *CodeGenModule::EmitAnnotateAttr(llvm::GlobalValue *GV,
2209 llvm::Constant *AnnoGV = EmitAnnotationString(AA->getAnnotation()),
2214 llvm::Constant *Fields[4] = {
2371 llvm::Constant *Init = EmitUuidofInitializer(Uuid);
2398 llvm::Constant *Aliasee;
2862 llvm::Constant *Func = GetGlobalValue(MangledName);
2951 llvm::Constant *Func = GetGlobalValue(MangledName);
3010 llvm::Constant *AliasFunc = GetGlobalValue(AliasName);
3025 llvm::Constant *CodeGenModule::GetOrCreateMultiVersionResolver(
3053 llvm::Constant *Resolver = GetOrCreateLLVMFunction(
3064 llvm::Constant *Resolver = GetOrCreateLLVMFunction(
3079 llvm::Constant *CodeGenModule::GetOrCreateLLVMFunction(
3198 llvm::Constant *BC = llvm::ConstantExpr::getBitCast(
3269 llvm::Constant *CodeGenModule::GetAddrOfFunction(GlobalDecl GD,
3346 llvm::Constant *C =
3406 llvm::Constant *
3473 llvm::Constant *NewPtrForOldDecl =
3546 llvm::Constant *Init = emitter.tryEmitForInitializer(*InitDecl);
3591 llvm::Constant *
3640 llvm::Constant *NewPtrForOldDecl =
3663 llvm::Constant *CodeGenModule::GetAddrOfGlobalVar(const VarDecl *D,
3680 llvm::Constant *
3688 auto *Ret = GetOrCreateLLVMGlobal(Name, PtrTy, nullptr);
3770 static llvm::Constant *
3773 llvm::Constant *Cast = GV;
3871 llvm::Constant *Init = nullptr;
3938 llvm::Constant *Entry =
3969 llvm::Constant *NewPtrForOldDecl =
4255 static void replaceUsesOfNonProtoConstant(llvm::Constant *old,
4458 llvm::Constant *Aliasee;
4544 llvm::Constant *Resolver =
4627 llvm::Constant *Zero = llvm::Constant::getNullValue(Int32Ty);
4627 llvm::Constant *Zero = llvm::Constant::getNullValue(Int32Ty);
4628 llvm::Constant *Zeros[] = { Zero, Zero };
4668 llvm::Constant *C = CreateRuntimeVariable(Ty, CFConstantStringClassName);
4723 llvm::Constant *C = nullptr;
4757 llvm::Constant *Str =
4844 llvm::Constant *
4885 GenerateStringLiteral(llvm::Constant *C, llvm::GlobalValue::LinkageTypes LT,
4914 llvm::Constant *C = GetConstantArrayFromStringLiteral(S);
4974 llvm::Constant *C =
5016 if (llvm::Constant *Slot = MaterializedGlobalTemporaryMap[E])
5047 llvm::Constant *InitialValue = nullptr;
5090 llvm::Constant *CV = GV;
5553 static llvm::Constant *GetPointerConstant(llvm::LLVMContext &Context,
5703 llvm::Constant *CodeGenModule::EmitUuidofInitializer(StringRef Uuid) {
5715 llvm::Constant *Field3[8];
5720 llvm::Constant *Fields[4] = {
5730 llvm::Constant *CodeGenModule::GetAddrOfRTTIDescriptor(QualType Ty,
5736 return llvm::Constant::getNullValue(Int8PtrTy);
5924 llvm::Constant *C = ConstantEmitter(CGF).emitAbstract(E, E->getType());
tools/clang/lib/CodeGen/CodeGenModule.h 249 llvm::Constant *CopyHelper;
250 llvm::Constant *DisposeHelper;
284 Structor(int Priority, llvm::Constant *Initializer,
285 llvm::Constant *AssociatedData)
289 llvm::Constant *Initializer;
290 llvm::Constant *AssociatedData;
356 typedef llvm::StringMap<llvm::TrackingVH<llvm::Constant> > ReplacementsTy;
362 llvm::SmallVector<std::pair<llvm::GlobalValue *, llvm::Constant *>, 8>
406 std::vector<llvm::Constant*> Annotations;
409 llvm::StringMap<llvm::Constant*> AnnotationStrings;
413 llvm::DenseMap<llvm::Constant *, llvm::GlobalVariable *> ConstantStringMap;
414 llvm::DenseMap<const Decl*, llvm::Constant *> StaticLocalDeclMap;
416 llvm::DenseMap<const Expr*, llvm::Constant *> MaterializedGlobalTemporaryMap;
418 llvm::DenseMap<QualType, llvm::Constant *> AtomicSetterHelperFnMap;
419 llvm::DenseMap<QualType, llvm::Constant *> AtomicGetterHelperFnMap;
422 llvm::DenseMap<QualType, llvm::Constant *> TypeDescriptorMap;
463 std::tuple<llvm::FunctionType *, llvm::WeakTrackingVH, llvm::Constant *>>
508 llvm::DenseMap<const BlockExpr *, llvm::Constant *> EmittedGlobalBlocks;
513 llvm::Constant *NSConcreteGlobalBlock = nullptr;
514 llvm::Constant *NSConcreteStackBlock = nullptr;
610 llvm::Constant *getStaticLocalDeclAddress(const VarDecl *D) {
614 llvm::Constant *C) {
618 llvm::Constant *
630 Address createUnnamedGlobalFrom(const VarDecl &D, llvm::Constant *Constant,
636 llvm::Constant *getAtomicSetterHelperFnMap(QualType Ty) {
640 llvm::Constant *Fn) {
644 llvm::Constant *getAtomicGetterHelperFnMap(QualType Ty) {
648 llvm::Constant *Fn) {
652 llvm::Constant *getTypeDescriptorFromMap(QualType Ty) {
655 void setTypeDescriptorInMap(QualType Ty, llvm::Constant *C) {
793 llvm::Constant *GetAddrOfGlobal(GlobalDecl GD,
828 llvm::Constant *GetAddrOfGlobalVar(const VarDecl *D,
842 llvm::Constant *GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty = nullptr,
849 llvm::Constant *GetAddrOfRTTIDescriptor(QualType Ty, bool ForEH = false);
855 llvm::Constant *GetAddrOfThunk(StringRef Name, llvm::Type *FnTy,
883 llvm::Constant *
900 llvm::Constant *GetAddrOfGlobalBlock(const BlockExpr *BE, StringRef Name);
904 llvm::Constant *getAddrOfGlobalBlockIfEmitted(const BlockExpr *BE) {
910 void setAddrOfGlobalBlock(const BlockExpr *BE, llvm::Constant *Addr);
921 llvm::Constant *GetConstantArrayFromStringLiteral(const StringLiteral *E);
970 llvm::Constant *
975 return cast<llvm::Constant>(getAddrAndTypeOfCXXStructor(GD, FnInfo, FnType,
988 llvm::Constant *getBuiltinLibFunction(const FunctionDecl *FD,
1024 void AddCXXDtorEntry(llvm::FunctionCallee DtorFn, llvm::Constant *Object) {
1048 llvm::Constant *CreateRuntimeVariable(llvm::Type *Ty,
1054 llvm::Constant *getNSConcreteGlobalBlock();
1055 llvm::Constant *getNSConcreteStackBlock();
1067 llvm::Constant *getMemberPointerConstant(const UnaryOperator *e);
1077 llvm::Constant *EmitNullConstant(QualType T);
1081 llvm::Constant *EmitNullConstantForBase(const CXXRecordDecl *Record);
1206 llvm::Constant *EmitAnnotationString(StringRef Str);
1209 llvm::Constant *EmitAnnotationUnit(SourceLocation Loc);
1212 llvm::Constant *EmitAnnotationLineNo(SourceLocation L);
1221 llvm::Constant *EmitAnnotateAttr(llvm::GlobalValue *GV,
1264 void addReplacement(StringRef Name, llvm::Constant *C);
1266 void addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C);
1367 llvm::Constant *getNullPointer(llvm::PointerType *T, QualType QT);
1370 llvm::Constant *GetOrCreateLLVMFunction(
1376 llvm::Constant *GetOrCreateMultiVersionResolver(GlobalDecl GD,
1381 llvm::Constant *GetOrCreateLLVMGlobal(StringRef MangledName,
1432 llvm::Constant *AssociatedData = nullptr);
1501 llvm::Constant *EmitUuidofInitializer(StringRef uuidstr);
tools/clang/lib/CodeGen/CodeGenPGO.cpp 926 if (isa<llvm::Constant>(ValuePtr))
tools/clang/lib/CodeGen/ConstantEmitter.h 47 llvm::SmallVector<std::pair<llvm::Constant *, llvm::GlobalVariable*>, 4>
72 llvm::Constant *tryEmitForInitializer(const VarDecl &D);
73 llvm::Constant *tryEmitForInitializer(const Expr *E, LangAS destAddrSpace,
75 llvm::Constant *emitForInitializer(const APValue &value, LangAS destAddrSpace,
96 llvm::Constant *tryEmitAbstractForInitializer(const VarDecl &D);
102 llvm::Constant *emitAbstract(const Expr *E, QualType T);
103 llvm::Constant *emitAbstract(SourceLocation loc, const APValue &value,
107 llvm::Constant *tryEmitAbstract(const Expr *E, QualType T);
108 llvm::Constant *tryEmitAbstractForMemory(const Expr *E, QualType T);
110 llvm::Constant *tryEmitAbstract(const APValue &value, QualType T);
111 llvm::Constant *tryEmitAbstractForMemory(const APValue &value, QualType T);
113 llvm::Constant *emitNullForMemory(QualType T) {
116 llvm::Constant *emitForMemory(llvm::Constant *C, QualType T) {
116 llvm::Constant *emitForMemory(llvm::Constant *C, QualType T) {
120 static llvm::Constant *emitNullForMemory(CodeGenModule &CGM, QualType T);
121 static llvm::Constant *emitForMemory(CodeGenModule &CGM, llvm::Constant *C,
121 static llvm::Constant *emitForMemory(CodeGenModule &CGM, llvm::Constant *C,
128 llvm::Constant *tryEmitPrivateForVarInit(const VarDecl &D);
130 llvm::Constant *tryEmitPrivate(const Expr *E, QualType T);
131 llvm::Constant *tryEmitPrivateForMemory(const Expr *E, QualType T);
133 llvm::Constant *tryEmitPrivate(const APValue &value, QualType T);
134 llvm::Constant *tryEmitPrivateForMemory(const APValue &value, QualType T);
150 void registerCurrentAddrPrivate(llvm::Constant *signal,
159 llvm::Constant *markIfFailed(llvm::Constant *init) {
159 llvm::Constant *markIfFailed(llvm::Constant *init) {
174 llvm::Constant *validateAndPopAbstract(llvm::Constant *C, AbstractState save);
174 llvm::Constant *validateAndPopAbstract(llvm::Constant *C, AbstractState save);
tools/clang/lib/CodeGen/ConstantInitBuilder.cpp 23 if (Data.is<llvm::Constant*>()) {
24 return Data.get<llvm::Constant*>()->getType();
40 if (Data.is<llvm::Constant*>()) {
41 GV->setInitializer(Data.get<llvm::Constant*>());
52 ConstantInitBuilderBase::createFuture(llvm::Constant *initializer) {
67 ConstantInitBuilderBase::createGlobal(llvm::Constant *initializer,
88 llvm::Constant *initializer){
97 llvm::Constant *resolvedReference =
128 llvm::Constant *
130 llvm::Constant *target) {
137 llvm::Constant *offset = llvm::ConstantExpr::getSub(target, base);
147 llvm::Constant *
162 llvm::SmallVectorImpl<llvm::Constant*> &indices,
227 llvm::Constant *element = Builder.Buffer[cacheEnd];
244 llvm::Constant *ConstantAggregateBuilderBase::finishArray(llvm::Type *eltTy) {
259 llvm::Constant *
269 llvm::Constant *constant;
tools/clang/lib/CodeGen/CoverageMappingGen.cpp 1335 llvm::Constant *FunctionRecordVals[] = {
1411 auto *FilenamesAndMappingsVal =
1425 llvm::Constant *CovDataHeaderVals[] = {
1436 llvm::Constant *TUDataVals[] = {CovDataHeaderVal, RecordsVal,
tools/clang/lib/CodeGen/CoverageMappingGen.h 53 std::vector<llvm::Constant *> FunctionRecords;
54 std::vector<llvm::Constant *> FunctionNames;
tools/clang/lib/CodeGen/ItaniumCXXABI.cpp 136 llvm::Constant *EmitMemberPointerConversion(const CastExpr *E,
137 llvm::Constant *Src) override;
139 llvm::Constant *EmitNullMemberPointer(const MemberPointerType *MPT) override;
141 llvm::Constant *EmitMemberFunctionPointer(const CXXMethodDecl *MD) override;
142 llvm::Constant *EmitMemberDataPointer(const MemberPointerType *MPT,
144 llvm::Constant *EmitMemberPointer(const APValue &MP, QualType MPT) override;
145 llvm::Constant *BuildMemberPointer(const CXXMethodDecl *MD,
171 llvm::Constant *getAddrOfRTTIDescriptor(QualType Ty) override;
244 llvm::Constant *
256 llvm::Constant *
319 llvm::Constant *addr) override;
589 llvm::Constant *ptrdiff_1 = llvm::ConstantInt::get(CGM.PtrDiffTy, 1);
650 llvm::Constant *CheckSourceLocation;
651 llvm::Constant *CheckTypeDesc;
706 llvm::Constant *StaticData[] = {
743 llvm::Constant *StaticData[] = {
842 if (isa<llvm::Constant>(src))
843 return EmitMemberPointerConversion(E, cast<llvm::Constant>(src));
845 llvm::Constant *adj = getMemberPointerAdjustment(E);
864 llvm::Value *null = llvm::Constant::getAllOnesValue(src->getType());
886 llvm::Constant *
888 llvm::Constant *src) {
897 llvm::Constant *adj = getMemberPointerAdjustment(E);
924 llvm::Constant *srcAdj = llvm::ConstantExpr::getExtractValue(src, 1);
925 llvm::Constant *dstAdj;
934 llvm::Constant *
941 llvm::Constant *Zero = llvm::ConstantInt::get(CGM.PtrDiffTy, 0);
942 llvm::Constant *Values[2] = { Zero, Zero };
946 llvm::Constant *
955 llvm::Constant *
960 llvm::Constant *ItaniumCXXABI::BuildMemberPointer(const CXXMethodDecl *MD,
967 llvm::Constant *MemPtr[2];
1007 llvm::Constant *addr = CGM.GetAddrOfFunction(MD, Ty);
1018 llvm::Constant *ItaniumCXXABI::EmitMemberPointer(const APValue &MP,
1084 llvm::Value *Zero = llvm::Constant::getNullValue(LPtr->getType());
1123 llvm::Constant::getAllOnesValue(MemPtr->getType());
1130 llvm::Constant *Zero = llvm::ConstantInt::get(Ptr->getType(), 0);
1136 llvm::Constant *One = llvm::ConstantInt::get(Ptr->getType(), 1);
1259 llvm::Constant *TypeInfo = CGM.GetAddrOfRTTIDescriptor(ThrowType,
1264 llvm::Constant *Dtor = nullptr;
1273 if (!Dtor) Dtor = llvm::Constant::getNullValue(CGM.Int8PtrTy);
1642 llvm::Constant *RTTI =
1694 llvm::Constant *
1735 llvm::Constant *ItaniumCXXABI::getVTableAddressPointForConstExpr(
2358 llvm::Constant *addr, bool TLS) {
2379 llvm::Constant *handle =
2399 addr = llvm::Constant::getNullValue(CGF.Int8PtrTy);
2402 cast<llvm::Constant>(dtor.getCallee()), dtorTy),
2455 llvm::Constant *addr) {
2762 SmallVector<llvm::Constant *, 16> Fields;
2770 llvm::Constant *GetAddrOfExternalRTTIDescriptor(QualType Ty);
2845 llvm::Constant *BuildTypeInfo(QualType Ty);
2848 llvm::Constant *BuildTypeInfo(
2865 llvm::Constant *Init = llvm::ConstantDataArray::getString(VMContext,
2877 llvm::Constant *
3258 llvm::Constant *VTable =
3266 llvm::Constant *Two = llvm::ConstantInt::get(PtrDiffTy, 2);
3328 llvm::Constant *ItaniumRTTIBuilder::BuildTypeInfo(QualType Ty) {
3376 llvm::Constant *ItaniumRTTIBuilder::BuildTypeInfo(
3386 llvm::Constant *TypeNameField;
3396 llvm::Constant *flag =
3492 llvm::Constant *Init = llvm::ConstantStruct::getAnon(Fields);
3506 llvm::Constant *NewPtr =
3569 llvm::Constant *BaseTypeInfo =
3580 llvm::Constant *BaseTypeInfo =
3776 llvm::Constant *PointeeTypeInfo =
3803 llvm::Constant *PointeeTypeInfo =
3815 llvm::Constant *ItaniumCXXABI::getAddrOfRTTIDescriptor(QualType Ty) {
3976 auto *Aliasee = CGM.GetAddrOfGlobal(BaseDecl);
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp 126 llvm::Constant *getAddrOfRTTIDescriptor(QualType Ty) override;
279 llvm::Constant *
287 llvm::Constant *
330 SmallVector<llvm::Constant *, 4> Map(NumEntries,
349 llvm::Constant *Init = llvm::ConstantArray::get(VDispMapTy, Map);
400 llvm::Constant *Addr) override;
534 llvm::Constant *getImageRelativeConstant(llvm::Constant *PtrVal) {
534 llvm::Constant *getImageRelativeConstant(llvm::Constant *PtrVal) {
539 return llvm::Constant::getNullValue(CGM.IntTy);
541 llvm::Constant *ImageBaseAsInt =
543 llvm::Constant *PtrValAsInt =
545 llvm::Constant *Diff =
556 llvm::Constant *getZeroInt() {
560 llvm::Constant *getAllOnesInt() {
561 return llvm::Constant::getAllOnesValue(CGM.IntTy);
568 llvm::SmallVectorImpl<llvm::Constant *> &fields);
603 llvm::Constant *EmitFullMemberPointer(llvm::Constant *FirstField,
603 llvm::Constant *EmitFullMemberPointer(llvm::Constant *FirstField,
610 llvm::Constant *MP);
632 llvm::Constant *EmitNullMemberPointer(const MemberPointerType *MPT) override;
634 llvm::Constant *EmitMemberDataPointer(const MemberPointerType *MPT,
636 llvm::Constant *EmitMemberFunctionPointer(const CXXMethodDecl *MD) override;
637 llvm::Constant *EmitMemberPointer(const APValue &MP, QualType MPT) override;
664 llvm::Constant *EmitMemberPointerConversion(const CastExpr *E,
665 llvm::Constant *Src) override;
667 llvm::Constant *EmitMemberPointerConversion(
670 CastExpr::path_const_iterator PathEnd, llvm::Constant *Src);
749 llvm::Constant *getCatchableType(QualType T,
944 emitRTtypeidCall(CGF, llvm::Constant::getNullValue(CGM.VoidPtrTy));
1667 llvm::Constant *RTTI = nullptr;
1689 llvm::Constant *VTableAddressPoint = getVTableAddressPoint(Base, VTableClass);
1704 llvm::Constant *
1712 llvm::Constant *MicrosoftCXXABI::getVTableAddressPointForConstExpr(
1714 llvm::Constant *VFTable = getVTableAddressPoint(Base, VTableClass);
1827 llvm::Constant *VTableGEP = llvm::ConstantExpr::getInBoundsGetElementPtr(
2089 SmallVector<llvm::Constant *, 4> Offsets(1 + ObjectWithVPtr->getNumVBases(),
2119 llvm::Constant *Init = llvm::ConstantArray::get(VBTableType, Offsets);
2259 llvm::Constant *Addr) {
2261 llvm::Constant *DtorStub = CGF.createAtExitStub(VD, Dtor, Addr);
2278 llvm::Constant *Addr) {
2634 llvm::SmallVectorImpl<llvm::Constant *> &fields) {
2640 fields.push_back(llvm::Constant::getNullValue(CGM.VoidPtrTy));
2657 llvm::Constant *
2659 llvm::SmallVector<llvm::Constant *, 4> fields;
2663 llvm::Constant *Res = llvm::ConstantStruct::getAnon(fields);
2668 llvm::Constant *
2669 MicrosoftCXXABI::EmitFullMemberPointer(llvm::Constant *FirstField,
2681 llvm::SmallVector<llvm::Constant *, 4> fields;
2702 llvm::Constant *
2709 llvm::Constant *FirstField =
2715 llvm::Constant *MicrosoftCXXABI::EmitMemberPointer(const APValue &MP,
2725 llvm::Constant *C;
2769 llvm::Constant *
2778 llvm::Constant *FirstField;
2866 llvm::Value *Zero = llvm::Constant::getNullValue(L0->getType());
2881 llvm::SmallVector<llvm::Constant *, 4> fields;
2884 fields.push_back(llvm::Constant::getNullValue(CGM.VoidPtrTy));
2908 llvm::Constant *Val) {
2911 llvm::Constant *FirstField = Val->getType()->isStructTy() ?
2923 llvm::SmallVector<llvm::Constant *, 4> Fields;
3087 if (isa<llvm::Constant>(Src))
3088 return EmitMemberPointerConversion(E, cast<llvm::Constant>(Src));
3112 llvm::Constant *DstNull = EmitNullMemberPointer(DstTy);
3153 bool IsConstant = isa<llvm::Constant>(Src);
3205 llvm::Constant *BaseClassOffset = llvm::ConstantInt::get(
3228 llvm::Constant *Mapping = VDispMap->getInitializer();
3230 Mapping->getAggregateElement(cast<llvm::Constant>(VBIndex));
3285 llvm::Constant *
3287 llvm::Constant *Src) {
3298 llvm::Constant *MicrosoftCXXABI::EmitMemberPointerConversion(
3301 CastExpr::path_const_iterator PathEnd, llvm::Constant *Src) {
3317 auto *Dst = cast<llvm::Constant>(EmitNonNullMemberPointerConversion(
3317 auto *Dst = cast<llvm::Constant>(EmitNonNullMemberPointerConversion(
3604 llvm::Constant *Fields[] = {
3640 SmallVector<llvm::Constant *, 8> BaseClassArrayData;
3644 BaseClassArrayData.push_back(llvm::Constant::getNullValue(PtrType));
3682 llvm::Constant *Fields[] = {
3726 llvm::Constant *Fields[] = {
3735 llvm::ArrayRef<llvm::Constant *> FieldsRef(Fields);
3808 llvm::Constant *MicrosoftCXXABI::getAddrOfRTTIDescriptor(QualType Type) {
3830 llvm::Constant *Fields[] = {
3983 llvm::Constant *CalleePtr =
4000 llvm::Constant *MicrosoftCXXABI::getCatchableType(QualType T,
4026 llvm::Constant *TD = getImageRelativeConstant(getAddrOfRTTIDescriptor(T));
4030 llvm::Constant *CopyCtor;
4039 CopyCtor = llvm::Constant::getNullValue(CGM.Int8PtrTy);
4065 llvm::Constant *Fields[] = {
4096 llvm::SmallSetVector<llvm::Constant *, 2> CatchableTypes;
4182 llvm::Constant *Fields[] = {
4243 llvm::Constant *CleanupFn = llvm::Constant::getNullValue(CGM.Int8PtrTy);
4243 llvm::Constant *CleanupFn = llvm::Constant::getNullValue(CGM.Int8PtrTy);
4251 llvm::Constant *ForwardCompat =
4252 getImageRelativeConstant(llvm::Constant::getNullValue(CGM.Int8PtrTy));
4253 llvm::Constant *PointerToCatchableTypes = getImageRelativeConstant(
4256 llvm::Constant *Fields[] = {
tools/clang/lib/CodeGen/ModuleBuilder.cpp 125 llvm::Constant *GetAddrOfGlobal(GlobalDecl global, bool isForDefinition) {
324 llvm::Constant *CodeGenerator::GetAddrOfGlobal(GlobalDecl global,
tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp 275 auto *Data = llvm::ConstantDataArray::getString(
tools/clang/lib/CodeGen/PatternInit.cpp 14 llvm::Constant *clang::CodeGen::initializationPatternFor(CodeGenModule &CGM,
52 auto *Int = llvm::ConstantInt::get(IntTy, IntValue);
68 llvm::SmallVector<llvm::Constant *, 8> Element(
81 llvm::SmallVector<llvm::Constant *, 8> Struct(StructTy->getNumElements());
tools/clang/lib/CodeGen/PatternInit.h 22 llvm::Constant *initializationPatternFor(CodeGenModule &, llvm::Type *);
tools/clang/lib/CodeGen/TargetInfo.cpp 432 llvm::Constant *TargetCodeGenInfo::getNullPointer(const CodeGen::CodeGenModule &CGM,
450 if (auto *C = dyn_cast<llvm::Constant>(Src))
450 if (auto *C = dyn_cast<llvm::Constant>(Src))
457 llvm::Constant *
458 TargetCodeGenInfo::performAddrSpaceCast(CodeGenModule &CGM, llvm::Constant *Src,
1139 llvm::Constant *
2343 llvm::Constant *
7405 llvm::ConstantAsMetadata::get(llvm::Constant::getIntegerValue(
7408 llvm::ConstantAsMetadata::get(llvm::Constant::getIntegerValue(
7411 llvm::ConstantAsMetadata::get(llvm::Constant::getIntegerValue(
7897 llvm::Constant *getNullPointer(const CodeGen::CodeGenModule &CGM,
8039 llvm::Constant *AMDGPUTargetCodeGenInfo::getNullPointer(
tools/clang/lib/CodeGen/TargetInfo.h 167 virtual llvm::Constant *
236 virtual llvm::Constant *getNullPointer(const CodeGen::CodeGenModule &CGM,
265 virtual llvm::Constant *performAddrSpaceCast(CodeGenModule &CGM,
266 llvm::Constant *V,
295 virtual llvm::SmallVector<llvm::Constant *, 1>
tools/clang/tools/clang-offload-wrapper/ClangOffloadWrapper.cpp 199 Constant *ZeroZero[] = {Zero, Zero};
202 SmallVector<Constant *, 4u> ImagesInits;
205 auto *Data = ConstantDataArray::get(C, Buf);
212 Constant *ZeroSize[] = {Zero, Size};
214 auto *ImageB = ConstantExpr::getGetElementPtr(Image->getValueType(),
216 auto *ImageE = ConstantExpr::getGetElementPtr(Image->getValueType(),
224 auto *ImagesData = ConstantArray::get(
233 auto *ImagesB = ConstantExpr::getGetElementPtr(Images->getValueType(),
237 auto *DescInit = ConstantStruct::get(
tools/clang/unittests/CodeGen/CodeGenExternalTest.cpp 177 Constant *c = my->Builder->GetAddrOfGlobal(GlobalDecl(fd), false);
tools/lldb/source/Expression/IRInterpreter.cpp 166 const Constant *constant = dyn_cast<Constant>(value);
166 const Constant *constant = dyn_cast<Constant>(value);
229 bool ResolveConstantValue(APInt &value, const Constant *constant) {
270 Constant *base = dyn_cast<Constant>(*op_cursor);
270 Constant *base = dyn_cast<Constant>(*op_cursor);
340 bool ResolveConstant(lldb::addr_t process_address, const Constant *constant) {
419 if (const Constant *constant = dyn_cast<Constant>(value)) {
419 if (const Constant *constant = dyn_cast<Constant>(value)) {
452 static bool CanResolveConstant(llvm::Constant *constant) {
471 Constant *base = dyn_cast<Constant>(*op_cursor);
471 Constant *base = dyn_cast<Constant>(*op_cursor);
623 if (Constant *constant = llvm::dyn_cast<Constant>(operand)) {
623 if (Constant *constant = llvm::dyn_cast<Constant>(operand)) {
tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp 250 Constant *fun_addr_int =
274 Constant *fun_addr_int =
tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp 394 Constant *initializer = result_global->getInitializer();
481 Constant *CFSCWB_addr_int =
492 Constant *alloc_arg = Constant::getNullValue(i8_ptr_ty);
492 Constant *alloc_arg = Constant::getNullValue(i8_ptr_ty);
493 Constant *bytes_arg = cstr ? ConstantExpr::getBitCast(cstr, i8_ptr_ty)
494 : Constant::getNullValue(i8_ptr_ty);
495 Constant *numBytes_arg = ConstantInt::get(
514 Constant *encoding_arg = ConstantInt::get(i32_ty, encoding_flags, false);
515 Constant *isExternal_arg =
622 Constant *nsstring_member = nsstring_struct->getOperand(2);
650 Constant *nsstring_cstr = nsstring_expr->getOperand(0);
653 Constant *nsstring_cstr = nsstring_expr->getOperand(0);
797 Constant *osr_initializer = _objc_selector_references_->getInitializer();
818 Constant *omvn_initializer = _objc_meth_var_name_->getInitializer();
865 Constant *srN_addr_int =
873 Constant *omvn_pointer = ConstantExpr::getBitCast(
955 Constant *ocr_initializer = _objc_class_references_->getInitializer();
976 Constant *ocn_initializer = _objc_class_name_->getInitializer();
1016 Constant *ogC_addr_int =
1024 Constant *ocn_pointer = ConstantExpr::getBitCast(
1298 Constant *symbol_addr_int = ConstantInt::get(m_intptr_ty, symbol_addr, false);
1340 Constant *initializer = global_variable->getInitializer();
1372 Constant *class_addr = ConstantInt::get(m_intptr_ty, (uint64_t)class_ptr);
1375 Constant *class_bitcast =
1479 Constant *Old = dyn_cast<Constant>(V);
1479 Constant *Old = dyn_cast<Constant>(V);
1500 Constant *zero(Constant::getNullValue(guard_load->getType()));
1500 Constant *zero(Constant::getNullValue(guard_load->getType()));
1536 bool IRForTarget::UnfoldConstant(Constant *old_constant,
1551 if (Constant *constant = dyn_cast<Constant>(user)) {
1551 if (Constant *constant = dyn_cast<Constant>(user)) {
1813 if (Constant *constant = dyn_cast<Constant>(value)) {
1813 if (Constant *constant = dyn_cast<Constant>(value)) {
1889 GlobalVariable::InternalLinkage, Constant::getNullValue(int8_ty),
tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h 178 llvm::Constant **&value_ptr);
214 void MaybeSetConstantResult(llvm::Constant *initializer,
516 static bool UnfoldConstant(llvm::Constant *old_constant,
tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp 181 llvm::Constant *new_func_cast = llvm::ConstantExpr::getCast(
tools/llvm-diff/DiffConsumer.cpp 67 if (isa<Constant>(V)) {
tools/llvm-diff/DifferenceEngine.cpp 381 bool equivalentAsOperands(Constant *L, Constant *R) {
381 bool equivalentAsOperands(Constant *L, Constant *R) {
466 if (isa<Constant>(L))
467 return equivalentAsOperands(cast<Constant>(L), cast<Constant>(R));
467 return equivalentAsOperands(cast<Constant>(L), cast<Constant>(R));
tools/llvm-stress/llvm-stress.cpp 209 Constant *getRandomConstant(Type *Tp) {
243 std::vector<Constant*> TempValues;
248 ArrayRef<Constant*> VectorValue(TempValues);
501