Lines Matching refs:Constant

47   CharUnits getAlignment(const llvm::Constant *C) const {  in getAlignment()
56 CharUnits getSize(const llvm::Constant *C) const { in getSize()
60 llvm::Constant *getPadding(CharUnits PadSize) const { in getPadding()
67 llvm::Constant *getZeroes(CharUnits ZeroSize) const { in getZeroes()
84 llvm::SmallVector<llvm::Constant*, 32> Elems;
99 static llvm::Constant *buildFrom(CodeGenModule &CGM,
100 ArrayRef<llvm::Constant *> Elems,
115 bool add(llvm::Constant *C, CharUnits Offset, bool AllowOverwrite);
129 llvm::Constant *build(llvm::Type *DesiredTy, bool AllowOversized) const { in build()
142 bool ConstantAggregateBuilder::add(llvm::Constant *C, CharUnits Offset, in add()
251 llvm::Constant *&ToUpdate = Elems[*FirstElemToUpdate]; in addBits()
317 llvm::Constant *C = Elems[Index]; in split()
392 static llvm::Constant *
395 SmallVectorImpl<llvm::Constant *> &Elements,
396 llvm::Constant *Filler);
398 llvm::Constant *ConstantAggregateBuilder::buildFrom( in buildFrom()
399 CodeGenModule &CGM, ArrayRef<llvm::Constant *> Elems, in buildFrom()
416 llvm::Constant *Filler = llvm::Constant::getNullValue(CommonType); in buildFrom()
418 SmallVector<llvm::Constant*, 32> ArrayElements; in buildFrom()
444 for (llvm::Constant *C : Elems) in buildFrom()
449 ArrayRef<llvm::Constant*> UnpackedElems = Elems; in buildFrom()
450 llvm::SmallVector<llvm::Constant*, 32> UnpackedElemStorage; in buildFrom()
466 llvm::SmallVector<llvm::Constant*, 32> PackedElems; in buildFrom()
534 llvm::Constant *Replacement = buildFrom( in condense()
553 static llvm::Constant *BuildStruct(ConstantEmitter &Emitter,
555 static llvm::Constant *BuildStruct(ConstantEmitter &Emitter,
568 llvm::Constant *InitExpr, bool AllowOverwrite = false);
570 bool AppendBytes(CharUnits FieldOffsetInChars, llvm::Constant *InitCst,
579 llvm::Constant *Finalize(QualType Ty);
583 const FieldDecl *Field, uint64_t FieldOffset, llvm::Constant *InitCst, in AppendField()
593 llvm::Constant *InitCst, in AppendBytes()
636 llvm::Constant *FillC = nullptr; in EmitDesignatedInitUpdater()
664 llvm::Constant *Val = Emitter.tryEmitPrivateForMemory(Init, ElemType); in EmitDesignatedInitUpdater()
726 llvm::Constant *EltInit = in Build()
781 llvm::Constant *VTableAddressPoint = in Build()
828 llvm::Constant *EltInit = in Build()
853 llvm::Constant *ConstStructBuilder::Finalize(QualType Type) { in Finalize()
859 llvm::Constant *ConstStructBuilder::BuildStruct(ConstantEmitter &Emitter, in BuildStruct()
871 llvm::Constant *ConstStructBuilder::BuildStruct(ConstantEmitter &Emitter, in BuildStruct()
907 llvm::Constant *C = emitter.tryEmitForInitializer(E->getInitializer(), in tryEmitGlobalCompoundLiteral()
927 static llvm::Constant *
930 SmallVectorImpl<llvm::Constant *> &Elements, in EmitArrayConstant()
931 llvm::Constant *Filler) { in EmitArrayConstant()
953 llvm::Constant *Initial = llvm::ConstantArray::get( in EmitArrayConstant()
982 for (llvm::Constant *Elt : Elements) in EmitArrayConstant()
996 public StmtVisitor<ConstExprEmitter, llvm::Constant*, QualType> {
1009 llvm::Constant *VisitStmt(Stmt *S, QualType T) { in VisitStmt()
1013 llvm::Constant *VisitConstantExpr(ConstantExpr *CE, QualType T) { in VisitConstantExpr()
1014 if (llvm::Constant *Result = Emitter.tryEmitConstantExpr(CE)) in VisitConstantExpr()
1019 llvm::Constant *VisitParenExpr(ParenExpr *PE, QualType T) { in VisitParenExpr()
1023 llvm::Constant *
1029 llvm::Constant *VisitGenericSelectionExpr(GenericSelectionExpr *GE, in VisitGenericSelectionExpr()
1034 llvm::Constant *VisitChooseExpr(ChooseExpr *CE, QualType T) { in VisitChooseExpr()
1038 llvm::Constant *VisitCompoundLiteralExpr(CompoundLiteralExpr *E, QualType T) { in VisitCompoundLiteralExpr()
1042 llvm::Constant *VisitCastExpr(CastExpr *E, QualType destType) { in VisitCastExpr()
1063 SmallVector<llvm::Constant*, 2> Elts; in VisitCastExpr()
1179 llvm::Constant *VisitCXXDefaultInitExpr(CXXDefaultInitExpr *DIE, QualType T) { in VisitCXXDefaultInitExpr()
1185 llvm::Constant *VisitExprWithCleanups(ExprWithCleanups *E, QualType T) { in VisitExprWithCleanups()
1189 llvm::Constant *VisitMaterializeTemporaryExpr(MaterializeTemporaryExpr *E, in VisitMaterializeTemporaryExpr()
1194 llvm::Constant *EmitArrayInitialization(InitListExpr *ILE, QualType T) { in EmitArrayInitialization()
1207 llvm::Constant *fillC = nullptr; in EmitArrayInitialization()
1215 SmallVector<llvm::Constant*, 16> Elts; in EmitArrayInitialization()
1224 llvm::Constant *C = Emitter.tryEmitPrivateForMemory(Init, EltType); in EmitArrayInitialization()
1240 llvm::Constant *EmitRecordInitialization(InitListExpr *ILE, QualType T) { in EmitRecordInitialization()
1244 llvm::Constant *VisitImplicitValueInitExpr(ImplicitValueInitExpr* E, in VisitImplicitValueInitExpr()
1249 llvm::Constant *VisitInitListExpr(InitListExpr *ILE, QualType T) { in VisitInitListExpr()
1262 llvm::Constant *VisitDesignatedInitUpdateExpr(DesignatedInitUpdateExpr *E, in VisitDesignatedInitUpdateExpr()
1282 llvm::Constant *VisitCXXConstructExpr(CXXConstructExpr *E, QualType Ty) { in VisitCXXConstructExpr()
1302 llvm::Constant *VisitStringLiteral(StringLiteral *E, QualType T) { in VisitStringLiteral()
1307 llvm::Constant *VisitObjCEncodeExpr(ObjCEncodeExpr *E, QualType T) { in VisitObjCEncodeExpr()
1321 llvm::Constant *VisitUnaryExtension(const UnaryOperator *E, QualType T) { in VisitUnaryExtension()
1333 llvm::Constant *ConstantEmitter::validateAndPopAbstract(llvm::Constant *C, in validateAndPopAbstract()
1345 llvm::Constant *
1352 llvm::Constant *
1359 llvm::Constant *
1366 llvm::Constant *ConstantEmitter::tryEmitConstantExpr(const ConstantExpr *CE) { in tryEmitConstantExpr()
1375 llvm::Constant *Res = in tryEmitConstantExpr()
1380 llvm::Constant *
1393 llvm::Constant *
1407 llvm::Constant *ConstantEmitter::tryEmitForInitializer(const VarDecl &D) { in tryEmitForInitializer()
1412 llvm::Constant *ConstantEmitter::tryEmitForInitializer(const Expr *E, in tryEmitForInitializer()
1419 llvm::Constant *ConstantEmitter::emitForInitializer(const APValue &value, in emitForInitializer()
1448 void ConstantEmitter::registerCurrentAddrPrivate(llvm::Constant *signal, in registerCurrentAddrPrivate()
1461 llvm::Constant *Base;
1465 llvm::DenseMap<llvm::Constant*, llvm::GlobalVariable*> PlaceholderAddresses;
1468 llvm::DenseMap<llvm::GlobalVariable*, llvm::Constant*> Locations;
1474 llvm::SmallVector<llvm::Constant*, 8> IndexValues;
1476 ReplacePlaceholders(CodeGenModule &CGM, llvm::Constant *base, in ReplacePlaceholders()
1477 ArrayRef<std::pair<llvm::Constant*, in ReplacePlaceholders()
1483 void replaceInInitializer(llvm::Constant *init) { in replaceInInitializer()
1514 void findLocations(llvm::Constant *init) { in findLocations()
1572 llvm::Constant *location = in setLocation()
1613 llvm::Constant *ConstantEmitter::tryEmitPrivateForVarInit(const VarDecl &D) { in tryEmitPrivateForVarInit()
1655 llvm::Constant *
1662 llvm::Constant *
1670 llvm::Constant *ConstantEmitter::tryEmitPrivateForMemory(const Expr *E, in tryEmitPrivateForMemory()
1673 llvm::Constant *C = tryEmitPrivate(E, nonMemoryDestType); in tryEmitPrivateForMemory()
1677 llvm::Constant *ConstantEmitter::tryEmitPrivateForMemory(const APValue &value, in tryEmitPrivateForMemory()
1684 llvm::Constant *ConstantEmitter::emitForMemory(CodeGenModule &CGM, in emitForMemory()
1685 llvm::Constant *C, in emitForMemory()
1698 llvm::Constant *elts[] = { in emitForMemory()
1715 llvm::Constant *ConstantEmitter::tryEmitPrivate(const Expr *E, in tryEmitPrivate()
1726 llvm::Constant *C; in tryEmitPrivate()
1735 llvm::Constant *CodeGenModule::getNullPointer(llvm::PointerType *T, QualType QT) { in getNullPointer()
1743 llvm::Constant *Value;
1746 /*implicit*/ ConstantLValue(llvm::Constant *value, in ConstantLValue()
1770 llvm::Constant *tryEmit();
1773 llvm::Constant *tryEmitAbsolute(llvm::Type *destTy);
1796 llvm::Constant *getOffset() { in getOffset()
1802 llvm::Constant *applyOffset(llvm::Constant *C) { in applyOffset()
1818 llvm::Constant *ConstantLValueEmitter::tryEmit() { in tryEmit()
1841 llvm::Constant *value = result.Value; in tryEmit()
1859 llvm::Constant *
1872 llvm::Constant *C; in tryEmitAbsolute()
1919 llvm::Constant *TypeInfo = in tryEmitBase()
1932 if (llvm::Constant *Result = Emitter.tryEmitConstantExpr(E)) in VisitConstantExpr()
1980 llvm::Constant *Ptr = Emitter.CGF->GetAddrOfLabel(E->getLabel()); in VisitAddrLabelExpr()
2034 llvm::Constant *ConstantEmitter::tryEmitPrivate(const APValue &Value, in tryEmitPrivate()
2049 llvm::Constant *Complex[2]; in tryEmitPrivate()
2072 llvm::Constant *Complex[2]; in tryEmitPrivate()
2086 SmallVector<llvm::Constant *, 4> Inits(NumElts); in tryEmitPrivate()
2102 llvm::Constant *LHS = tryEmitPrivate(LHSExpr, LHSExpr->getType()); in tryEmitPrivate()
2103 llvm::Constant *RHS = tryEmitPrivate(RHSExpr, RHSExpr->getType()); in tryEmitPrivate()
2110 llvm::Constant *AddrLabelDiff = llvm::ConstantExpr::getSub(LHS, RHS); in tryEmitPrivate()
2126 llvm::Constant *Filler = nullptr; in tryEmitPrivate()
2135 SmallVector<llvm::Constant*, 16> Elts; in tryEmitPrivate()
2143 llvm::Constant *C = tryEmitPrivateForMemory( in tryEmitPrivate()
2183 llvm::Constant *
2199 static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM,
2203 static llvm::Constant *EmitNullConstant(CodeGenModule &CGM, in EmitNullConstant()
2212 std::vector<llvm::Constant *> elements(numElements); in EmitNullConstant()
2281 elements[i] = llvm::Constant::getNullValue(structure->getElementType(i)); in EmitNullConstant()
2288 static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM, in EmitNullConstantForBase()
2295 return llvm::Constant::getNullValue(baseType); in EmitNullConstantForBase()
2301 llvm::Constant *ConstantEmitter::emitNullForMemory(CodeGenModule &CGM, in emitNullForMemory()
2306 llvm::Constant *CodeGenModule::EmitNullConstant(QualType T) { in EmitNullConstant()
2312 return llvm::Constant::getNullValue(getTypes().ConvertTypeForMem(T)); in EmitNullConstant()
2320 llvm::Constant *Element = in EmitNullConstant()
2323 SmallVector<llvm::Constant *, 8> Array(NumElements, Element); in EmitNullConstant()
2336 llvm::Constant *