clang 22.0.0git
|
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/CodeGen/CIRGenBuilder.h"
Public Member Functions | |
CIRGenBuilderTy (mlir::MLIRContext &mlirContext, const CIRGenTypeCache &tc) | |
mlir::Attribute | getString (llvm::StringRef str, mlir::Type eltTy, std::optional< size_t > size) |
Get a cir::ConstArrayAttr for a string literal. | |
cir::ConstArrayAttr | getConstArray (mlir::Attribute attrs, cir::ArrayType arrayTy) const |
mlir::Attribute | getConstRecordOrZeroAttr (mlir::ArrayAttr arrayAttr, bool packed=false, bool padded=false, mlir::Type type={}) |
cir::ConstRecordAttr | getAnonConstRecord (mlir::ArrayAttr arrayAttr, bool packed=false, bool padded=false, mlir::Type ty={}) |
cir::TypeInfoAttr | getTypeInfo (mlir::ArrayAttr fieldsAttr) |
std::string | getUniqueAnonRecordName () |
std::string | getUniqueRecordName (const std::string &baseName) |
cir::LongDoubleType | getLongDoubleTy (const llvm::fltSemantics &format) const |
mlir::Type | getPtrToVPtrType () |
cir::FuncType | getFuncType (llvm::ArrayRef< mlir::Type > params, mlir::Type retTy, bool isVarArg=false) |
cir::RecordType::RecordKind | getRecordKind (const clang::TagTypeKind kind) |
Get a CIR record kind from a AST declaration tag. | |
cir::RecordType | getCompleteNamedRecordType (llvm::ArrayRef< mlir::Type > members, bool packed, bool padded, llvm::StringRef name) |
Get a CIR named record type. | |
cir::RecordType | getCompleteRecordType (mlir::ArrayAttr fields, bool packed=false, bool padded=false, llvm::StringRef name="") |
cir::RecordType | getIncompleteRecordTy (llvm::StringRef name, const clang::RecordDecl *rd) |
Get an incomplete CIR struct type. | |
bool | isNullValue (mlir::Attribute attr) const |
cir::IntType | getUIntNTy (int n) |
cir::IntType | getSIntNTy (int n) |
cir::VoidType | getVoidTy () |
cir::IntType | getSInt8Ty () |
cir::IntType | getSInt16Ty () |
cir::IntType | getSInt32Ty () |
cir::IntType | getSInt64Ty () |
cir::IntType | getUInt8Ty () |
cir::IntType | getUInt16Ty () |
cir::IntType | getUInt32Ty () |
cir::IntType | getUInt64Ty () |
cir::ConstantOp | getConstInt (mlir::Location loc, llvm::APSInt intVal) |
cir::ConstantOp | getConstInt (mlir::Location loc, llvm::APInt intVal) |
cir::ConstantOp | getConstInt (mlir::Location loc, mlir::Type t, uint64_t c) |
cir::ConstantOp | getConstFP (mlir::Location loc, mlir::Type t, llvm::APFloat fpVal) |
bool | isInt8Ty (mlir::Type i) |
bool | isInt16Ty (mlir::Type i) |
bool | isInt32Ty (mlir::Type i) |
bool | isInt64Ty (mlir::Type i) |
bool | isInt (mlir::Type i) |
cir::PointerType | getUInt8PtrTy () |
cir::RecordType | getAnonRecordTy (llvm::ArrayRef< mlir::Type > members, bool packed=false, bool padded=false) |
Get a CIR anonymous record type. | |
cir::ConstantOp | getSInt32 (int32_t c, mlir::Location loc) |
cir::ConstantOp | getUInt32 (uint32_t c, mlir::Location loc) |
cir::ConstantOp | getSInt64 (uint64_t c, mlir::Location loc) |
mlir::Value | createNeg (mlir::Value value) |
mlir::Value | createFloatingCast (mlir::Value v, mlir::Type destType) |
mlir::Value | createFSub (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createFAdd (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createFMul (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createFDiv (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createDynCast (mlir::Location loc, mlir::Value src, cir::PointerType destType, bool isRefCast, cir::DynamicCastInfoAttr info) |
mlir::Value | createDynCastToVoid (mlir::Location loc, mlir::Value src, bool vtableUseRelativeLayout) |
Address | createBaseClassAddr (mlir::Location loc, Address addr, mlir::Type destType, unsigned offset, bool assumeNotNull) |
mlir::Value | createVTTAddrPoint (mlir::Location loc, mlir::Type retTy, mlir::Value addr, uint64_t offset) |
mlir::Value | createVTTAddrPoint (mlir::Location loc, mlir::Type retTy, mlir::FlatSymbolRefAttr sym, uint64_t offset) |
Address | createElementBitCast (mlir::Location loc, Address addr, mlir::Type destType) |
Cast the element type of the given address to a different type, preserving information like the alignment. | |
cir::LoadOp | createLoad (mlir::Location loc, Address addr, bool isVolatile=false) |
cir::LoadOp | createAlignedLoad (mlir::Location loc, mlir::Type ty, mlir::Value ptr, llvm::MaybeAlign align) |
cir::LoadOp | createAlignedLoad (mlir::Location loc, mlir::Type ty, mlir::Value ptr, clang::CharUnits align=clang::CharUnits::One()) |
cir::StoreOp | createStore (mlir::Location loc, mlir::Value val, Address dst, bool isVolatile=false, mlir::IntegerAttr align={}, cir::MemOrderAttr order={}) |
mlir::Value | createComplexRealPtr (mlir::Location loc, mlir::Value value) |
Create a cir.complex.real_ptr operation that derives a pointer to the real part of the complex value pointed to by the specified pointer value. | |
Address | createComplexRealPtr (mlir::Location loc, Address addr) |
mlir::Value | createComplexImagPtr (mlir::Location loc, mlir::Value value) |
Create a cir.complex.imag_ptr operation that derives a pointer to the imaginary part of the complex value pointed to by the specified pointer value. | |
Address | createComplexImagPtr (mlir::Location loc, Address addr) |
mlir::Value | getArrayElement (mlir::Location arrayLocBegin, mlir::Location arrayLocEnd, mlir::Value arrayPtr, mlir::Type eltTy, mlir::Value idx, bool shouldDecay) |
Create a cir.ptr_stride operation to get access to an array element. | |
mlir::Value | maybeBuildArrayDecay (mlir::Location loc, mlir::Value arrayPtr, mlir::Type eltTy) |
Returns a decayed pointer to the first element of the array pointed to by arrayPtr . | |
void | computeGlobalViewIndicesFromFlatOffset (int64_t offset, mlir::Type ty, cir::CIRDataLayout layout, llvm::SmallVectorImpl< int64_t > &indices) |
cir::GlobalOp | createVersionedGlobal (mlir::ModuleOp module, mlir::Location loc, mlir::StringRef name, mlir::Type type, bool isConstant, cir::GlobalLinkageKind linkage) |
Creates a versioned global variable. | |
cir::StackSaveOp | createStackSave (mlir::Location loc, mlir::Type ty) |
cir::StackRestoreOp | createStackRestore (mlir::Location loc, mlir::Value v) |
mlir::Value | createSetBitfield (mlir::Location loc, mlir::Type resultType, Address dstAddr, mlir::Type storageType, mlir::Value src, const CIRGenBitFieldInfo &info, bool isLvalueVolatile, bool useVolatile) |
mlir::Value | createGetBitfield (mlir::Location loc, mlir::Type resultType, Address addr, mlir::Type storageType, const CIRGenBitFieldInfo &info, bool isLvalueVolatile, bool useVolatile) |
Public Member Functions inherited from cir::CIRBaseBuilderTy | |
CIRBaseBuilderTy (mlir::MLIRContext &mlirContext) | |
CIRBaseBuilderTy (mlir::OpBuilder &builder) | |
mlir::Value | getConstAPInt (mlir::Location loc, mlir::Type typ, const llvm::APInt &val) |
cir::ConstantOp | getConstant (mlir::Location loc, mlir::TypedAttr attr) |
cir::ConstantOp | getConstantInt (mlir::Location loc, mlir::Type ty, int64_t value) |
mlir::Value | getSignedInt (mlir::Location loc, int64_t val, unsigned numBits) |
mlir::Value | getUnsignedInt (mlir::Location loc, uint64_t val, unsigned numBits) |
cir::ConstantOp | getNullValue (mlir::Type ty, mlir::Location loc) |
mlir::TypedAttr | getConstNullPtrAttr (mlir::Type t) |
mlir::TypedAttr | getZeroInitAttr (mlir::Type ty) |
cir::ConstantOp | getBool (bool state, mlir::Location loc) |
cir::ConstantOp | getFalse (mlir::Location loc) |
cir::ConstantOp | getTrue (mlir::Location loc) |
cir::BoolType | getBoolTy () |
cir::VoidType | getVoidTy () |
cir::IntType | getUIntNTy (int n) |
cir::IntType | getSIntNTy (int n) |
cir::PointerType | getPointerTo (mlir::Type ty) |
cir::PointerType | getPointerTo (mlir::Type ty, cir::TargetAddressSpaceAttr as) |
cir::PointerType | getPointerTo (mlir::Type ty, clang::LangAS langAS) |
cir::PointerType | getVoidPtrTy (clang::LangAS langAS=clang::LangAS::Default) |
cir::PointerType | getVoidPtrTy (cir::TargetAddressSpaceAttr as) |
cir::BoolAttr | getCIRBoolAttr (bool state) |
cir::BoolAttr | getTrueAttr () |
cir::BoolAttr | getFalseAttr () |
mlir::Value | createComplexCreate (mlir::Location loc, mlir::Value real, mlir::Value imag) |
mlir::Value | createComplexReal (mlir::Location loc, mlir::Value operand) |
mlir::Value | createComplexImag (mlir::Location loc, mlir::Value operand) |
cir::LoadOp | createLoad (mlir::Location loc, mlir::Value ptr, bool isVolatile=false, uint64_t alignment=0) |
mlir::Value | createAlignedLoad (mlir::Location loc, mlir::Value ptr, uint64_t alignment) |
mlir::Value | createNot (mlir::Value value) |
cir::DoWhileOp | createDoWhile (mlir::Location loc, llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> condBuilder, llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> bodyBuilder) |
Create a do-while operation. | |
cir::WhileOp | createWhile (mlir::Location loc, llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> condBuilder, llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> bodyBuilder) |
Create a while operation. | |
cir::ForOp | createFor (mlir::Location loc, llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> condBuilder, llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> bodyBuilder, llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> stepBuilder) |
Create a for operation. | |
cir::BreakOp | createBreak (mlir::Location loc) |
Create a break operation. | |
cir::ContinueOp | createContinue (mlir::Location loc) |
Create a continue operation. | |
mlir::Value | createUnaryOp (mlir::Location loc, cir::UnaryOpKind kind, mlir::Value operand) |
mlir::TypedAttr | getConstPtrAttr (mlir::Type type, int64_t value) |
mlir::Value | createAlloca (mlir::Location loc, cir::PointerType addrType, mlir::Type type, llvm::StringRef name, mlir::IntegerAttr alignment, mlir::Value dynAllocSize) |
mlir::Value | createAlloca (mlir::Location loc, cir::PointerType addrType, mlir::Type type, llvm::StringRef name, clang::CharUnits alignment, mlir::Value dynAllocSize) |
mlir::Value | createAlloca (mlir::Location loc, cir::PointerType addrType, mlir::Type type, llvm::StringRef name, mlir::IntegerAttr alignment) |
mlir::Value | createAlloca (mlir::Location loc, cir::PointerType addrType, mlir::Type type, llvm::StringRef name, clang::CharUnits alignment) |
cir::GlobalViewAttr | getGlobalViewAttr (cir::GlobalOp globalOp, mlir::ArrayAttr indices={}) |
Get constant address of a global variable as an MLIR attribute. | |
cir::GlobalViewAttr | getGlobalViewAttr (cir::PointerType type, cir::GlobalOp globalOp, mlir::ArrayAttr indices={}) |
Get constant address of a global variable as an MLIR attribute. | |
mlir::Value | createGetGlobal (mlir::Location loc, cir::GlobalOp global) |
mlir::Value | createGetGlobal (cir::GlobalOp global) |
cir::CopyOp | createCopy (mlir::Value dst, mlir::Value src, bool isVolatile=false) |
Create a copy with inferred length. | |
cir::StoreOp | createStore (mlir::Location loc, mlir::Value val, mlir::Value dst, bool isVolatile=false, mlir::IntegerAttr align={}, cir::MemOrderAttr order={}) |
cir::GlobalOp | createGlobal (mlir::ModuleOp mlirModule, mlir::Location loc, mlir::StringRef name, mlir::Type type, bool isConstant, cir::GlobalLinkageKind linkage) |
cir::GetMemberOp | createGetMember (mlir::Location loc, mlir::Type resultTy, mlir::Value base, llvm::StringRef name, unsigned index) |
mlir::Value | createDummyValue (mlir::Location loc, mlir::Type type, clang::CharUnits alignment) |
cir::PtrStrideOp | createPtrStride (mlir::Location loc, mlir::Value base, mlir::Value stride) |
cir::CallOp | createCallOp (mlir::Location loc, mlir::SymbolRefAttr callee, mlir::Type returnType, mlir::ValueRange operands, llvm::ArrayRef< mlir::NamedAttribute > attrs={}) |
cir::CallOp | createCallOp (mlir::Location loc, cir::FuncOp callee, mlir::ValueRange operands, llvm::ArrayRef< mlir::NamedAttribute > attrs={}) |
cir::CallOp | createIndirectCallOp (mlir::Location loc, mlir::Value indirectTarget, cir::FuncType funcType, mlir::ValueRange operands, llvm::ArrayRef< mlir::NamedAttribute > attrs={}) |
cir::CallOp | createCallOp (mlir::Location loc, mlir::SymbolRefAttr callee, mlir::ValueRange operands=mlir::ValueRange(), llvm::ArrayRef< mlir::NamedAttribute > attrs={}) |
cir::CallOp | createTryCallOp (mlir::Location loc, mlir::SymbolRefAttr callee=mlir::SymbolRefAttr(), mlir::Type returnType=cir::VoidType(), mlir::ValueRange operands=mlir::ValueRange(), cir::SideEffect sideEffect=cir::SideEffect::All) |
cir::CallOp | createTryCallOp (mlir::Location loc, cir::FuncOp callee, mlir::ValueRange operands, cir::SideEffect sideEffect=cir::SideEffect::All) |
mlir::Value | createCast (mlir::Location loc, cir::CastKind kind, mlir::Value src, mlir::Type newTy) |
mlir::Value | createCast (cir::CastKind kind, mlir::Value src, mlir::Type newTy) |
mlir::Value | createIntCast (mlir::Value src, mlir::Type newTy) |
mlir::Value | createIntToPtr (mlir::Value src, mlir::Type newTy) |
mlir::Value | createPtrToInt (mlir::Value src, mlir::Type newTy) |
mlir::Value | createPtrToBoolCast (mlir::Value v) |
mlir::Value | createBoolToInt (mlir::Value src, mlir::Type newTy) |
mlir::Value | createBitcast (mlir::Value src, mlir::Type newTy) |
mlir::Value | createBitcast (mlir::Location loc, mlir::Value src, mlir::Type newTy) |
mlir::Value | createPtrBitcast (mlir::Value src, mlir::Type newPointeeTy) |
mlir::Value | createPtrIsNull (mlir::Value ptr) |
mlir::Value | createBinop (mlir::Location loc, mlir::Value lhs, cir::BinOpKind kind, mlir::Value rhs) |
mlir::Value | createLowBitsSet (mlir::Location loc, unsigned size, unsigned bits) |
mlir::Value | createAnd (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createOr (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createSelect (mlir::Location loc, mlir::Value condition, mlir::Value trueValue, mlir::Value falseValue) |
mlir::Value | createLogicalAnd (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createLogicalOr (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createMul (mlir::Location loc, mlir::Value lhs, mlir::Value rhs, OverflowBehavior ob=OverflowBehavior::None) |
mlir::Value | createNSWMul (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createNUWAMul (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createSub (mlir::Location loc, mlir::Value lhs, mlir::Value rhs, OverflowBehavior ob=OverflowBehavior::Saturated) |
mlir::Value | createNSWSub (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createNUWSub (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createAdd (mlir::Location loc, mlir::Value lhs, mlir::Value rhs, OverflowBehavior ob=OverflowBehavior::None) |
mlir::Value | createNSWAdd (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createNUWAdd (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
cir::CmpOp | createCompare (mlir::Location loc, cir::CmpOpKind kind, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createIsNaN (mlir::Location loc, mlir::Value operand) |
mlir::Value | createShift (mlir::Location loc, mlir::Value lhs, mlir::Value rhs, bool isShiftLeft) |
mlir::Value | createShift (mlir::Location loc, mlir::Value lhs, const llvm::APInt &rhs, bool isShiftLeft) |
mlir::Value | createShift (mlir::Location loc, mlir::Value lhs, unsigned bits, bool isShiftLeft) |
mlir::Value | createShiftLeft (mlir::Location loc, mlir::Value lhs, unsigned bits) |
mlir::Value | createShiftRight (mlir::Location loc, mlir::Value lhs, unsigned bits) |
mlir::Value | createShiftLeft (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::Value | createShiftRight (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
mlir::IntegerAttr | getAlignmentAttr (clang::CharUnits alignment) |
mlir::IntegerAttr | getAlignmentAttr (llvm::Align alignment) |
mlir::IntegerAttr | getAlignmentAttr (int64_t alignment) |
mlir::IntegerAttr | getSizeFromCharUnits (clang::CharUnits size) |
cir::ConstantOp | getNullPtr (mlir::Type ty, mlir::Location loc) |
cir::ConditionOp | createCondition (mlir::Value condition) |
Create a loop condition. | |
cir::YieldOp | createYield (mlir::Location loc, mlir::ValueRange value={}) |
Create a yield operation. |
Additional Inherited Members | |
Static Public Member Functions inherited from cir::CIRBaseBuilderTy | |
static OpBuilder::InsertPoint | getBestAllocaInsertPoint (mlir::Block *block) |
Definition at line 28 of file CIRGenBuilder.h.
|
inline |
Definition at line 34 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::CIRBaseBuilderTy().
void CIRGenBuilderTy::computeGlobalViewIndicesFromFlatOffset | ( | int64_t | offset, |
mlir::Type | ty, | ||
cir::CIRDataLayout | layout, | ||
llvm::SmallVectorImpl< int64_t > & | indices ) |
Definition at line 73 of file CIRGenBuilder.cpp.
References computeGlobalViewIndicesFromFlatOffset(), clang::Default, cir::CIRDataLayout::getABITypeAlign(), and cir::CIRDataLayout::getTypeAllocSize().
Referenced by computeGlobalViewIndicesFromFlatOffset().
|
inline |
Definition at line 450 of file CIRGenBuilder.h.
References createAlignedLoad(), and clang::CharUnits::One().
|
inline |
Definition at line 438 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::createPtrBitcast(), and cir::CIRBaseBuilderTy::getAlignmentAttr().
Referenced by createAlignedLoad().
|
inline |
Definition at line 393 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), clang::CIRGen::Address::getElementType(), clang::CIRGen::Address::getPointer(), and cir::CIRBaseBuilderTy::getPointerTo().
|
inline |
Definition at line 489 of file CIRGenBuilder.h.
References createComplexImagPtr(), clang::CIRGen::Address::getAlignment(), and clang::CIRGen::Address::getPointer().
|
inline |
Create a cir.complex.imag_ptr operation that derives a pointer to the imaginary part of the complex value pointed to by the specified pointer value.
Definition at line 482 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getPointerTo().
Referenced by createComplexImagPtr().
|
inline |
Definition at line 474 of file CIRGenBuilder.h.
References createComplexRealPtr(), clang::CIRGen::Address::getAlignment(), and clang::CIRGen::Address::getPointer().
|
inline |
Create a cir.complex.real_ptr operation that derives a pointer to the real part of the complex value pointed to by the specified pointer value.
Definition at line 467 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getPointerTo().
Referenced by createComplexRealPtr().
|
inline |
Definition at line 374 of file CIRGenBuilder.h.
|
inline |
Definition at line 383 of file CIRGenBuilder.h.
References cir::MissingFeatures::addressSpace(), and cir::CIRBaseBuilderTy::getVoidPtrTy().
Referenced by emitDynamicCastToVoid().
|
inline |
Cast the element type of the given address to a different type, preserving information like the alignment.
Definition at line 420 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::createBitcast(), clang::CIRGen::Address::getAlignment(), clang::CIRGen::Address::getElementType(), clang::CIRGen::Address::getPointer(), and cir::CIRBaseBuilderTy::getPointerTo().
Referenced by clang::CIRGen::CIRGenFunction::emitPointerWithAlignment().
|
inline |
Definition at line 352 of file CIRGenBuilder.h.
References cir::MissingFeatures::fastMathFlags(), cir::MissingFeatures::fpConstraints(), and cir::MissingFeatures::metaDataNode().
|
inline |
Definition at line 366 of file CIRGenBuilder.h.
References cir::MissingFeatures::fastMathFlags(), cir::MissingFeatures::fpConstraints(), and cir::MissingFeatures::metaDataNode().
|
inline |
Definition at line 337 of file CIRGenBuilder.h.
References cir::MissingFeatures::fpConstraints().
|
inline |
Definition at line 359 of file CIRGenBuilder.h.
References cir::MissingFeatures::fastMathFlags(), cir::MissingFeatures::fpConstraints(), and cir::MissingFeatures::metaDataNode().
|
inline |
Definition at line 344 of file CIRGenBuilder.h.
References cir::MissingFeatures::fastMathFlags(), cir::MissingFeatures::fpConstraints(), and cir::MissingFeatures::metaDataNode().
|
inline |
Definition at line 558 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), clang::CIRGen::Address::getPointer(), clang::CIRGen::CIRGenBitFieldInfo::isSigned, clang::CIRGen::CIRGenBitFieldInfo::name, clang::CIRGen::CIRGenBitFieldInfo::offset, clang::CIRGen::CIRGenBitFieldInfo::size, clang::CIRGen::CIRGenBitFieldInfo::volatileOffset, and clang::CIRGen::CIRGenBitFieldInfo::volatileStorageSize.
|
inline |
Definition at line 430 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), cir::CIRBaseBuilderTy::getAlignmentAttr(), and clang::CIRGen::Address::getPointer().
Referenced by emitAtomicCmpXchg(), and emitAtomicOp().
|
inline |
Definition at line 322 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::createIntCast(), and getSIntNTy().
Referenced by emitPointerArithmetic().
|
inline |
Definition at line 540 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), clang::CIRGen::Address::getPointer(), clang::CIRGen::CIRGenBitFieldInfo::isSigned, clang::CIRGen::CIRGenBitFieldInfo::name, clang::CIRGen::CIRGenBitFieldInfo::offset, clang::CIRGen::CIRGenBitFieldInfo::size, clang::CIRGen::CIRGenBitFieldInfo::volatileOffset, and clang::CIRGen::CIRGenBitFieldInfo::volatileStorageSize.
|
inline |
Definition at line 536 of file CIRGenBuilder.h.
|
inline |
Definition at line 532 of file CIRGenBuilder.h.
|
inline |
Definition at line 455 of file CIRGenBuilder.h.
Referenced by emitAtomicCmpXchg(), and emitAtomicOp().
|
inlinenodiscard |
Creates a versioned global variable.
If the symbol is already taken, an ID will be appended to the symbol. The returned global must always be queried for its name so it can be referenced correctly.
Definition at line 519 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::createGlobal(), and clang::ast_matchers::type.
|
inline |
Definition at line 412 of file CIRGenBuilder.h.
|
inline |
Definition at line 406 of file CIRGenBuilder.h.
|
inline |
Definition at line 75 of file CIRGenBuilder.h.
Referenced by getTypeInfo().
|
inline |
Get a CIR anonymous record type.
Definition at line 300 of file CIRGenBuilder.h.
References cir::MissingFeatures::astRecordDeclAttr(), and getType().
Referenced by getCompleteRecordType().
mlir::Value CIRGenBuilderTy::getArrayElement | ( | mlir::Location | arrayLocBegin, |
mlir::Location | arrayLocEnd, | ||
mlir::Value | arrayPtr, | ||
mlir::Type | eltTy, | ||
mlir::Value | idx, | ||
bool | shouldDecay ) |
Create a cir.ptr_stride operation to get access to an array element.
idx
is the index of the element to access, shouldDecay
is true if the result should decay to a pointer to the element type.
Definition at line 34 of file CIRGenBuilder.cpp.
References maybeBuildArrayDecay().
Referenced by emitArraySubscriptPtr().
|
inline |
Get a CIR named record type.
If a record already exists and is complete, but the client tries to fetch it with a different set of attributes, this method will crash.
Definition at line 151 of file CIRGenBuilder.h.
References cir::MissingFeatures::astRecordDeclAttr(), getType(), and clang::ast_matchers::type.
Referenced by getCompleteRecordType().
cir::RecordType clang::CIRGen::CIRGenBuilderTy::getCompleteRecordType | ( | mlir::ArrayAttr | fields, |
bool | packed = false, | ||
bool | padded = false, | ||
llvm::StringRef | name = "" ) |
Definition at line 136 of file CIRGenBuilder.cpp.
References cir::MissingFeatures::astRecordDeclAttr(), getAnonRecordTy(), and getCompleteNamedRecordType().
Referenced by getConstRecordOrZeroAttr().
|
inline |
Definition at line 65 of file CIRGenBuilder.h.
cir::ConstantOp clang::CIRGen::CIRGenBuilderTy::getConstFP | ( | mlir::Location | loc, |
mlir::Type | t, | ||
llvm::APFloat | fpVal ) |
Definition at line 67 of file CIRGenBuilder.cpp.
cir::ConstantOp CIRGenBuilderTy::getConstInt | ( | mlir::Location | loc, |
llvm::APInt | intVal ) |
Definition at line 55 of file CIRGenBuilder.cpp.
References getConstInt().
cir::ConstantOp CIRGenBuilderTy::getConstInt | ( | mlir::Location | loc, |
llvm::APSInt | intVal ) |
Definition at line 46 of file CIRGenBuilder.cpp.
References getConstInt(), getSIntNTy(), and getUIntNTy().
Referenced by emitCXXNewAllocSize(), getConstInt(), and getConstInt().
cir::ConstantOp CIRGenBuilderTy::getConstInt | ( | mlir::Location | loc, |
mlir::Type | t, | ||
uint64_t | c ) |
Definition at line 60 of file CIRGenBuilder.cpp.
References c.
mlir::Attribute clang::CIRGen::CIRGenBuilderTy::getConstRecordOrZeroAttr | ( | mlir::ArrayAttr | arrayAttr, |
bool | packed = false, | ||
bool | padded = false, | ||
mlir::Type | type = {} ) |
Definition at line 152 of file CIRGenBuilder.cpp.
References getCompleteRecordType(), isNullValue(), and clang::ast_matchers::type.
|
inline |
Definition at line 125 of file CIRGenBuilder.h.
Referenced by getBadCastFn(), and getItaniumDynamicCastFn().
|
inline |
Get an incomplete CIR struct type.
If we have a complete record declaration, we may create an incomplete type and then add the members, so rd
here may be complete.
Definition at line 183 of file CIRGenBuilder.h.
References getRecordKind(), clang::TagDecl::getTagKind(), and getType().
|
inline |
Definition at line 109 of file CIRGenBuilder.h.
|
inline |
Definition at line 121 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getPointerTo().
|
inline |
Get a CIR record kind from a AST declaration tag.
Definition at line 131 of file CIRGenBuilder.h.
References clang::Class, clang::Enum, clang::Interface, clang::Struct, and clang::Union.
Referenced by getIncompleteRecordTy().
|
inline |
Definition at line 264 of file CIRGenBuilder.h.
Referenced by getSIntNTy().
|
inline |
Definition at line 311 of file CIRGenBuilder.h.
References c, cir::CIRBaseBuilderTy::getConstantInt(), and getSInt32Ty().
|
inline |
Definition at line 265 of file CIRGenBuilder.h.
Referenced by getSInt32(), and getSIntNTy().
|
inline |
Definition at line 317 of file CIRGenBuilder.h.
References c, and getSInt64Ty().
|
inline |
Definition at line 266 of file CIRGenBuilder.h.
Referenced by getSInt64(), and getSIntNTy().
|
inline |
Definition at line 263 of file CIRGenBuilder.h.
Referenced by getSIntNTy().
|
inline |
Definition at line 246 of file CIRGenBuilder.h.
References getSInt16Ty(), getSInt32Ty(), getSInt64Ty(), and getSInt8Ty().
Referenced by createNeg(), and getConstInt().
|
inline |
Get a cir::ConstArrayAttr for a string literal.
Note: This is different from what is returned by mlir::Builder::getStringAttr() which is an mlir::StringAttr.
Definition at line 40 of file CIRGenBuilder.h.
|
inline |
Definition at line 92 of file CIRGenBuilder.h.
References getAnonConstRecord().
|
inline |
Definition at line 269 of file CIRGenBuilder.h.
Referenced by getUIntNTy().
|
inline |
Definition at line 314 of file CIRGenBuilder.h.
References c, cir::CIRBaseBuilderTy::getConstantInt(), and getUInt32Ty().
|
inline |
Definition at line 270 of file CIRGenBuilder.h.
Referenced by getUInt32(), and getUIntNTy().
|
inline |
Definition at line 271 of file CIRGenBuilder.h.
Referenced by getUIntNTy().
|
inline |
Definition at line 297 of file CIRGenBuilder.h.
Referenced by getItaniumDynamicCastFn().
|
inline |
Definition at line 268 of file CIRGenBuilder.h.
Referenced by getUIntNTy().
|
inline |
Definition at line 231 of file CIRGenBuilder.h.
References getUInt16Ty(), getUInt32Ty(), getUInt64Ty(), and getUInt8Ty().
Referenced by getConstInt().
|
inline |
Definition at line 97 of file CIRGenBuilder.h.
References getUniqueRecordName().
|
inline |
Definition at line 99 of file CIRGenBuilder.h.
Referenced by getUniqueAnonRecordName().
|
inline |
Definition at line 261 of file CIRGenBuilder.h.
|
inline |
Definition at line 294 of file CIRGenBuilder.h.
|
inline |
Definition at line 285 of file CIRGenBuilder.h.
|
inline |
Definition at line 288 of file CIRGenBuilder.h.
|
inline |
Definition at line 291 of file CIRGenBuilder.h.
|
inline |
Definition at line 282 of file CIRGenBuilder.h.
|
inline |
Definition at line 194 of file CIRGenBuilder.h.
Referenced by getConstRecordOrZeroAttr(), and clang::CIRGen::ConstantEmitter::tryEmitPrivate().
mlir::Value CIRGenBuilderTy::maybeBuildArrayDecay | ( | mlir::Location | loc, |
mlir::Value | arrayPtr, | ||
mlir::Type | eltTy ) |
Returns a decayed pointer to the first element of the array pointed to by arrayPtr
.
Definition at line 17 of file CIRGenBuilder.cpp.
References cir::CIRBaseBuilderTy::getPointerTo().
Referenced by getArrayElement().