|
clang 24.0.0git
|
#include "/work/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, bool ensureNullTerm=true) |
| Get a cir::ConstArrayAttr for a string literal. | |
| cir::ConstArrayAttr | getConstArray (mlir::Attribute attrs, cir::ArrayType arrayTy) const |
| mlir::Attribute | getConstRecordOrZeroAttr (mlir::ArrayAttr arrayAttr, cir::RecordType recordTy) |
| cir::ConstRecordAttr | getAnonConstRecord (mlir::ArrayAttr arrayAttr) |
| 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 | getCompleteNamedRecordType (llvm::ArrayRef< mlir::Type > members, bool packed, llvm::StringRef name, llvm::ArrayRef< cir::RecordMemberKind > memberKinds) |
| Get a CIR named record type. | |
| cir::RecordType | getIncompleteRecordTy (llvm::StringRef name, const clang::RecordDecl *rd) |
| Get an incomplete CIR record type. | |
| cir::CopyOp | createCopy (Address dst, Address src, bool isVolatile=false, bool skipTailPadding=false) |
| cir::MemCpyOp | createMemCpy (mlir::Location loc, Address dst, Address src, mlir::Value len) |
| cir::MemMoveOp | createMemMove (mlir::Location loc, Address dst, Address src, mlir::Value len) |
| cir::MemSetOp | createMemSet (mlir::Location loc, mlir::Value dst, mlir::Value val, mlir::Value len) |
| cir::MemSetOp | createMemSet (mlir::Location loc, Address dst, mlir::Value val, mlir::Value len) |
| cir::DataMemberAttr | getDataMemberAttr (cir::DataMemberType ty, llvm::ArrayRef< int32_t > path) |
| cir::DataMemberAttr | getNullDataMemberAttr (cir::DataMemberType ty) |
| bool | isNullValue (mlir::Attribute attr) const |
| cir::IntType | getUIntNTy (int n) |
| cir::IntType | getSIntNTy (int n) |
| cir::VoidType | getVoidTy () |
| cir::IntType | getBoolMemoryTy () |
| 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::FP16Type | getFp16Ty () |
| cir::BF16Type | getBfloat16Ty () |
| cir::SingleType | getSingleTy () |
| cir::DoubleType | getDoubleTy () |
| cir::ConstantOp | getConstInt (mlir::Location loc, llvm::APSInt intVal) |
| cir::ConstantOp | getConstInt (mlir::Location loc, llvm::APInt intVal, bool isUnsigned=true) |
| 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::IntType | getExtendedIntTy (cir::IntType ty, bool isSigned) |
| cir::IntType | getTruncatedIntTy (cir::IntType ty, bool isSigned) |
| cir::VectorType | getExtendedOrTruncatedElementVectorType (cir::VectorType vt, bool isExtended, bool isSigned=false) |
| cir::PointerType | getUInt8PtrTy () |
| cir::StructType | getAnonRecordTy (llvm::ArrayRef< mlir::Type > members, bool packed, llvm::ArrayRef< cir::RecordMemberKind > memberKinds) |
| Get a CIR anonymous struct 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) |
| cir::ConstantOp | getUInt64 (uint64_t c, mlir::Location loc) |
| cir::ConstantOp | getZero (mlir::Location loc, mlir::Type ty) |
| mlir::Value | createNeg (mlir::Location loc, mlir::Value value, bool nsw=false) |
| mlir::Value | createFloatingCast (mlir::Value v, mlir::Type destType) |
| 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) |
| Address | createDerivedClassAddr (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) |
| cir::IsFPClassOp | createIsFPClass (mlir::Location loc, mlir::Value src, cir::FPClassTest flags) |
| 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, bool isNontemporal=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, bool isNontemporal=false, mlir::IntegerAttr align={}, cir::SyncScopeKindAttr scope={}, 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) |
| Address | createGetMember (mlir::Location loc, Address base, llvm::StringRef name, unsigned index, const cir::CIRDataLayout &layout) |
| cir::GetRuntimeMemberOp | createGetIndirectMember (mlir::Location loc, mlir::Value objectPtr, mlir::Value memberPtr) |
| 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. | |
| bool | computeGlobalViewIndicesFromFlatOffset (int64_t offset, mlir::Type ty, const cir::CIRDataLayout &layout, llvm::SmallVectorImpl< int64_t > &indices) |
| uint64_t | computeOffsetFromGlobalViewIndices (const cir::CIRDataLayout &layout, mlir::Type ty, llvm::ArrayRef< int64_t > indices) |
| cir::GlobalOp | createVersionedGlobal (mlir::ModuleOp module, mlir::Location loc, mlir::StringRef name, mlir::Type type, bool isConstant, cir::GlobalLinkageKind linkage, mlir::ptr::MemorySpaceAttrInterface addrSpace={}) |
| Creates a versioned global variable. | |
| cir::StackSaveOp | createStackSave (mlir::Location loc, mlir::Type ty) |
| cir::StackRestoreOp | createStackRestore (mlir::Location loc, mlir::Value v) |
| cir::CmpThreeWayOp | createThreeWayCmpTotalOrdering (mlir::Location loc, mlir::Value lhs, mlir::Value rhs, const llvm::APSInt <Res, const llvm::APSInt &eqRes, const llvm::APSInt >Res, cir::CmpOrdering ordering) |
| cir::CmpThreeWayOp | createThreeWayCmpPartialOrdering (mlir::Location loc, mlir::Value lhs, mlir::Value rhs, const llvm::APSInt <Res, const llvm::APSInt &eqRes, const llvm::APSInt >Res, const llvm::APSInt &unorderedRes) |
| 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) |
| mlir::Value | createMaskedLoad (mlir::Location loc, mlir::Type ty, mlir::Value ptr, llvm::Align alignment, mlir::Value mask, mlir::Value passThru) |
| cir::VecShuffleOp | createVecShuffle (mlir::Location loc, mlir::Value vec1, mlir::Value vec2, llvm::ArrayRef< mlir::Attribute > maskAttrs) |
| cir::VecShuffleOp | createVecShuffle (mlir::Location loc, mlir::Value vec1, mlir::Value vec2, llvm::ArrayRef< int64_t > mask) |
| cir::VecShuffleOp | createVecShuffle (mlir::Location loc, mlir::Value vec1, llvm::ArrayRef< int64_t > mask) |
| cir::MatrixExtractOp | createMatrixExtract (mlir::Location loc, mlir::Value matrix, mlir::Value rowIdx, mlir::Value columnIdx) |
| cir::MatrixInsertOp | createMatrixInsert (mlir::Location loc, mlir::Value value, mlir::Value matrix, mlir::Value rowIdx, mlir::Value columnIdx) |
| cir::MatrixColumnMajorLoadOp | createMatrixColumnMajorLoad (mlir::Location loc, mlir::Type resultTy, mlir::Value value, mlir::Value stride, bool isVolatile) |
| cir::MatrixMultiplyOp | createMatrixMultiply (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| Multiply an MxK matrix by a KxN matrix, producing an MxN matrix. | |
| cir::MatrixTransposeOp | createMatrixTranspose (mlir::Location loc, mlir::Value matrix) |
| cir::MatrixColumnMajorStoreOp | createMatrixColumnMajorStore (mlir::Location loc, mlir::Value matrix, mlir::Value data, mlir::Value stride, bool isVolatile) |
| std::pair< mlir::Value, mlir::Value > | splatMatrixOpOperandsIfNecessary (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| template<typename... Operands> | |
| mlir::Value | emitIntrinsicCallOp (mlir::Location loc, const llvm::StringRef str, const mlir::Type &resTy, Operands &&...op) |
| template<typename... Operands> | |
| mlir::Value | emitIntrinsicCallOp (mlir::Location loc, const llvm::StringRef str, const mlir::Type &resTy, cir::FastMathFlagsAttr fastmath, Operands &&...op) |
| 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 | getNullDataMemberAttr (cir::DataMemberType ty) |
| 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, mlir::ptr::MemorySpaceAttrInterface as) |
| cir::PointerType | getPointerTo (mlir::Type ty, clang::LangAS langAS) |
| cir::PointerType | getVoidPtrTy (clang::LangAS langAS=clang::LangAS::Default) |
| cir::PointerType | getVoidPtrTy (mlir::ptr::MemorySpaceAttrInterface as) |
| cir::MethodAttr | getMethodAttr (cir::MethodType ty, cir::FuncOp methodFuncOp) |
| cir::MethodAttr | getNullMethodAttr (cir::MethodType ty) |
| cir::BoolAttr | getCIRBoolAttr (bool state) |
| cir::BoolAttr | getTrueAttr () |
| cir::BoolAttr | getFalseAttr () |
| void | setIsFPConstrained (bool isCon) |
| Enable/Disable use of constrained floating point math. | |
| bool | getIsFPConstrained () const |
| Query for the use of constrained floating point math. | |
| void | setDefaultConstrainedExcept (clang::LangOptions::FPExceptionModeKind newExcept) |
| Set the exception handling to be used with constrained floating point. | |
| clang::LangOptions::FPExceptionModeKind | getDefaultConstrainedExcept () const |
| Get the exception handling used with constrained floating point. | |
| void | setDefaultConstrainedRounding (llvm::RoundingMode newRounding) |
| Set the rounding mode handling to be used with constrained floating point. | |
| llvm::RoundingMode | getDefaultConstrainedRounding () const |
| Get the rounding mode handling used with constrained floating point. | |
| void | setFastMathFlags (cir::FastMathFlags flags) |
| Set the fast-math flags attached to floating-point operations. | |
| cir::FastMathFlags | getFastMathFlags () const |
| Get the fast-math flags attached to floating-point operations. | |
| cir::FastMathFlagsAttr | getFastMathFlagsAttr () |
| Returns a null attribute when no fast-math flags are set. | |
| cir::FenvAttr | getConstrainedFPAttr () |
| Build the #cir.fenv attribute describing the constrained floating-point environment currently in effect. | |
| 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) |
| mlir::Value | createComplexAdd (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| mlir::Value | createComplexSub (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| mlir::Value | createComplexMul (mlir::Location loc, mlir::Value lhs, mlir::Value rhs, cir::ComplexRangeKind rangeKind) |
| mlir::Value | createComplexDiv (mlir::Location loc, mlir::Value lhs, mlir::Value rhs, cir::ComplexRangeKind rangeKind) |
| mlir::Value | createComplexConj (mlir::Location loc, mlir::Value operand) |
| cir::LoadOp | createLoad (mlir::Location loc, mlir::Value ptr, bool isVolatile=false, uint64_t alignment=0, bool isNontemporal=false) |
| mlir::Value | createAlignedLoad (mlir::Location loc, mlir::Value ptr, uint64_t alignment) |
| mlir::Value | createNot (mlir::Location loc, mlir::Value value) |
| 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::WhileOp | createWhile (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)> cleanupBuilder, cir::CleanupKind cleanupKind) |
| Create a while operation with a per-iteration cleanup region. | |
| 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::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, llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> cleanupBuilder, cir::CleanupKind cleanupKind) |
| Create a for operation with a per-iteration cleanup region. | |
| cir::BreakOp | createBreak (mlir::Location loc) |
| Create a break operation. | |
| cir::ContinueOp | createContinue (mlir::Location loc) |
| Create a continue operation. | |
| mlir::Value | createInc (mlir::Location loc, mlir::Value input, bool nsw=false) |
| mlir::Value | createDec (mlir::Location loc, mlir::Value input, bool nsw=false) |
| mlir::Value | createMinus (mlir::Location loc, mlir::Value input, bool nsw=false) |
| mlir::TypedAttr | getConstPtrAttr (mlir::Type type, int64_t value) |
| mlir::Value | createAlloca (mlir::Location loc, cir::PointerType addrType, 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, llvm::StringRef name, mlir::IntegerAttr alignment) |
| mlir::Value | createAlloca (mlir::Location loc, cir::PointerType addrType, 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={}, bool addressPoint=false) |
| Get constant address of a global variable as an MLIR attribute. | |
| cir::GlobalViewAttr | getGlobalViewAttr (cir::PointerType type, cir::GlobalOp globalOp, llvm::ArrayRef< int64_t > indices, bool addressPoint=false) |
| Get constant address of a global variable as an MLIR attribute. | |
| cir::GetGlobalOp | createGetGlobal (mlir::Location loc, cir::GlobalOp global, bool threadLocal=false) |
| cir::GetGlobalOp | createGetGlobal (cir::GlobalOp global, bool threadLocal=false) |
| cir::CopyOp | createCopy (mlir::Value dst, mlir::Value src, bool isVolatile=false, bool skipTailPadding=false) |
| Create a copy with inferred length. | |
| cir::StoreOp | createStore (mlir::Location loc, mlir::Value val, mlir::Value dst, bool isVolatile=false, bool isNontemporal=false, mlir::IntegerAttr align={}, cir::SyncScopeKindAttr scope={}, cir::MemOrderAttr order={}) |
| cir::LoadOp | createFlagLoad (mlir::Location loc, mlir::Value addr) |
| Emit a load from an boolean flag variable. | |
| cir::StoreOp | createFlagStore (mlir::Location loc, bool val, mlir::Value dst) |
| cir::GlobalOp | createGlobal (mlir::ModuleOp mlirModule, mlir::Location loc, mlir::StringRef name, mlir::Type type, bool isConstant, cir::GlobalLinkageKind linkage, mlir::ptr::MemorySpaceAttrInterface addrSpace) |
| 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={}, llvm::ArrayRef< mlir::NamedAttrList > argAttrs={}, llvm::ArrayRef< mlir::NamedAttribute > resAttrs={}, cir::CallingConv callingConv=cir::CallingConv::C) |
| cir::CallOp | createCallOp (mlir::Location loc, cir::FuncOp callee, mlir::ValueRange operands, llvm::ArrayRef< mlir::NamedAttribute > attrs={}, llvm::ArrayRef< mlir::NamedAttrList > argAttrs={}, llvm::ArrayRef< mlir::NamedAttribute > resAttrs={}, cir::CallingConv callingConv=cir::CallingConv::C) |
| cir::CallOp | createIndirectCallOp (mlir::Location loc, mlir::Value indirectTarget, cir::FuncType funcType, mlir::ValueRange operands, llvm::ArrayRef< mlir::NamedAttribute > attrs={}, llvm::ArrayRef< mlir::NamedAttrList > argAttrs={}, llvm::ArrayRef< mlir::NamedAttribute > resAttrs={}, cir::CallingConv callingConv=cir::CallingConv::C) |
| cir::CallOp | createCallOp (mlir::Location loc, mlir::SymbolRefAttr callee, mlir::ValueRange operands=mlir::ValueRange(), llvm::ArrayRef< mlir::NamedAttribute > attrs={}, llvm::ArrayRef< mlir::NamedAttrList > argAttrs={}, llvm::ArrayRef< mlir::NamedAttribute > resAttrs={}) |
| 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 | createBoolIntToIntCast (mlir::Value src, mlir::Type newTy) |
| mlir::Value | createIntCast (mlir::Value src, mlir::Type newTy) |
| mlir::Value | createBuiltinIntCast (mlir::Location loc, mlir::Value src, mlir::Type newTy) |
| mlir::Value | createBuiltinIntCast (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 | createPtrIsNotNull (mlir::Value ptr) |
| mlir::Value | createAddrSpaceCast (mlir::Location loc, mlir::Value src, mlir::Type newTy) |
| mlir::Value | createAddrSpaceCast (mlir::Value src, mlir::Type newTy) |
| mlir::Value | createExtractElement (mlir::Location loc, mlir::Value vec, uint64_t idx) |
| mlir::Value | createInsertElement (mlir::Location loc, mlir::Value vec, mlir::Value newElt, uint64_t idx) |
| cir::SignBitOp | createSignBit (mlir::Location loc, mlir::Value val) |
| 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::None) |
| 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) |
| mlir::Value | createDiv (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| mlir::Value | createRem (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| template<typename OpTy> | |
| mlir::Value | createFPBinOp (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| mlir::Value | createFAdd (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| mlir::Value | createFSub (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 | createFRem (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| mlir::Value | createFNeg (mlir::Location loc, mlir::Value operand) |
| mlir::Value | createXor (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| mlir::Value | createMax (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| mlir::Value | createMin (mlir::Location loc, mlir::Value lhs, mlir::Value rhs) |
| cir::CmpOp | createCompare (mlir::Location loc, cir::CmpOpKind kind, mlir::Value lhs, mlir::Value rhs) |
| cir::VecCmpOp | createVecCompare (mlir::Location loc, cir::CmpOpKind kind, mlir::Value lhs, mlir::Value rhs) |
Compares lhs and rhs element-wise. | |
| cir::VecCmpOp | createVecCompare (mlir::Location loc, VectorType resultTy, cir::CmpOpKind kind, mlir::Value lhs, mlir::Value rhs) |
Compares lhs and rhs element-wise, producing resultTy, which must be a vector of integers or bools with as many elements as lhs. | |
| 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) |
| cir::FuncType | getVoidFnTy (mlir::TypeRange argTypes={}) |
| Returns void (T...) as a cir::FuncType. | |
| cir::PointerType | getVoidFnPtrTy (mlir::TypeRange argTypes={}) |
| Returns void (*)(T...) as a cir::PointerType. | |
| mlir::IntegerAttr | getAlignmentAttr (clang::CharUnits alignment) |
| mlir::IntegerAttr | getAlignmentAttr (llvm::Align alignment) |
| mlir::IntegerAttr | getAlignmentAttr (int64_t alignment) |
| cir::ConstantOp | getAlignment (mlir::Location loc, mlir::Type t, clang::CharUnits 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. | |
| GetMethodResults | createGetMethod (mlir::Location loc, mlir::Value method, mlir::Value objectPtr) |
Static Public Member Functions | |
| static bool | tagKindIsClass (const clang::TagTypeKind kind) |
| Get a CIR record kind from a AST declaration tag. | |
| static bool | tagKindIsUnion (const clang::TagTypeKind kind) |
| Returns true if the tag kind is a union. | |
| Static Public Member Functions inherited from cir::CIRBaseBuilderTy | |
| static unsigned | getCIRIntOrFloatBitWidth (mlir::Type eltTy) |
| static OpBuilder::InsertPoint | getBestAllocaInsertPoint (mlir::Block *block) |
Additional Inherited Members | |
| Public Attributes inherited from cir::CIRBaseBuilderTy | |
| bool | isFPConstrained = false |
| clang::LangOptions::FPExceptionModeKind | defaultConstrainedExcept |
| llvm::RoundingMode | defaultConstrainedRounding |
| cir::FastMathFlags | fastMathFlags = cir::FastMathFlags::none |
Definition at line 31 of file CIRGenBuilder.h.
|
inline |
Definition at line 38 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::CIRBaseBuilderTy().
|
nodiscard |
Definition at line 92 of file CIRGenBuilder.cpp.
References computeGlobalViewIndicesFromFlatOffset(), clang::Default, cir::CIRDataLayout::getABITypeAlign(), and cir::CIRDataLayout::getTypeAllocSize().
Referenced by computeGlobalViewIndicesFromFlatOffset(), and createNewGlobalView().
| uint64_t CIRGenBuilderTy::computeOffsetFromGlobalViewIndices | ( | const cir::CIRDataLayout & | layout, |
| mlir::Type | ty, | ||
| llvm::ArrayRef< int64_t > | indices ) |
Definition at line 182 of file CIRGenBuilder.cpp.
References cir::CIRDataLayout::getTypeAllocSize(), and cir::CIRDataLayout::layout.
Referenced by createNewGlobalView().
|
inline |
Definition at line 577 of file CIRGenBuilder.h.
References createAlignedLoad(), and clang::CharUnits::One().
|
inline |
Definition at line 562 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::createPtrBitcast(), and cir::CIRBaseBuilderTy::getAlignmentAttr().
Referenced by createAlignedLoad(), emitAMDGPUInvariantLoad(), emitAMDGPUWorkGroupSize(), emitX86Aeswide(), enterNewDeleteCleanup(), and performTypeAdjustment().
|
inline |
Definition at line 482 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAddressSpace(), clang::CIRGen::Address::getAlignment(), clang::CIRGen::Address::getElementType(), clang::CIRGen::Address::getPointer(), and cir::CIRBaseBuilderTy::getPointerTo().
|
inline |
Definition at line 617 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 610 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getPointerTo().
Referenced by createComplexImagPtr().
|
inline |
Definition at line 602 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 595 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getPointerTo().
Referenced by createComplexRealPtr().
|
inline |
Definition at line 189 of file CIRGenBuilder.h.
References createCopy(), clang::CIRGen::Address::getAlignment(), clang::CIRGen::Address::getPointer(), and clang::CharUnits::getQuantity().
Referenced by createCopy().
|
inline |
Definition at line 495 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAddressSpace(), clang::CIRGen::Address::getAlignment(), clang::CIRGen::Address::getElementType(), clang::CIRGen::Address::getPointer(), and cir::CIRBaseBuilderTy::getPointerTo().
|
inline |
Definition at line 460 of file CIRGenBuilder.h.
|
inline |
Definition at line 469 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 540 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 454 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getConstrainedFPAttr().
Referenced by clang::CIRGen::emitArgumentDemotion(), and emitAsmStores().
|
inline |
Definition at line 767 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), and clang::CIRGen::Address::getPointer().
|
inline |
Definition at line 643 of file CIRGenBuilder.h.
References cir::MissingFeatures::addressSpace(), and cir::CIRBaseBuilderTy::getPointerTo().
|
inline |
Definition at line 623 of file CIRGenBuilder.h.
References clang::CharUnits::alignmentAtOffset(), createGetMember(), clang::CharUnits::fromQuantity(), clang::CIRGen::Address::getAddressSpace(), clang::CIRGen::Address::getAlignment(), clang::CIRGen::Address::getBasePointer(), clang::CIRGen::Address::getElementType(), cir::CIRBaseBuilderTy::getPointerTo(), clang::CIRGen::Address::isKnownNonNull(), and cir::CIRDataLayout::layout.
Referenced by createGetMember(), and clang::CIRGen::CIRGenFunction::getAddrOfBitFieldStorage().
|
inline |
Definition at line 526 of file CIRGenBuilder.h.
|
inline |
Definition at line 551 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), cir::CIRBaseBuilderTy::getAlignmentAttr(), and clang::CIRGen::Address::getPointer().
Referenced by closeConditionalCleanupScope(), emitAtomicCmpXchg(), emitAtomicOp(), emitExactDynamicCast(), and emitMemberInitializer().
|
inline |
Definition at line 785 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getConstant().
Referenced by emitX86MaskedLoad().
|
inline |
Definition at line 844 of file CIRGenBuilder.h.
|
inline |
Definition at line 872 of file CIRGenBuilder.h.
|
inline |
Definition at line 830 of file CIRGenBuilder.h.
|
inline |
Definition at line 837 of file CIRGenBuilder.h.
|
inline |
Multiply an MxK matrix by a KxN matrix, producing an MxN matrix.
Definition at line 854 of file CIRGenBuilder.h.
|
inline |
Definition at line 863 of file CIRGenBuilder.h.
|
inline |
Definition at line 198 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), clang::CIRGen::Address::getPointer(), and clang::CharUnits::getQuantity().
Referenced by emitAtomicCmpXchg().
|
inline |
Definition at line 206 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), clang::CIRGen::Address::getPointer(), and clang::CharUnits::getQuantity().
|
inline |
Definition at line 220 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), cir::CIRBaseBuilderTy::getAlignmentAttr(), clang::CIRGen::Address::getPointer(), and getUInt8Ty().
|
inline |
Definition at line 214 of file CIRGenBuilder.h.
References getUInt8Ty().
|
inline |
Definition at line 435 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::createIntCast(), cir::CIRBaseBuilderTy::createMinus(), and getSIntNTy().
Referenced by emitPointerArithmetic().
|
inline |
Definition at line 749 of file CIRGenBuilder.h.
References clang::CIRGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), and clang::CIRGen::Address::getPointer().
|
inline |
Definition at line 711 of file CIRGenBuilder.h.
|
inline |
Definition at line 707 of file CIRGenBuilder.h.
|
inline |
Definition at line 582 of file CIRGenBuilder.h.
Referenced by emitAsmStores(), emitAtomicCmpXchg(), emitAtomicLockRelease(), emitAtomicOp(), emitEncodeKey(), emitNeonMultiVecLoadCall(), emitNullBaseClassInitialization(), emitStoresForConstant(), emitX86Aes(), emitX86Aeswide(), and enterNewDeleteCleanup().
|
inline |
Definition at line 733 of file CIRGenBuilder.h.
References getSIntNTy().
|
inline |
Definition at line 715 of file CIRGenBuilder.h.
References getSIntNTy().
|
inline |
Create a unary shuffle. The second vector operand of the IR instruction is poison.
Definition at line 821 of file CIRGenBuilder.h.
References createVecShuffle(), and cir::CIRBaseBuilderTy::getConstant().
|
inline |
Definition at line 811 of file CIRGenBuilder.h.
References createVecShuffle(), getSInt32Ty(), and int32_t.
|
inline |
Definition at line 802 of file CIRGenBuilder.h.
Referenced by createVecShuffle(), createVecShuffle(), emitNeonSplat(), emitPshufWord(), emitX86CvtF16ToFloatExpr(), emitX86MaskedCompareResult(), emitX86MaskUnpack(), emitX86PackedByteShift(), emitX86VPerm2f128(), and getMaskVecValue().
|
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 692 of file CIRGenBuilder.h.
References clang::ast_matchers::type.
|
inline |
Definition at line 517 of file CIRGenBuilder.h.
|
inline |
Definition at line 511 of file CIRGenBuilder.h.
|
inline |
Definition at line 905 of file CIRGenBuilder.h.
|
inline |
Definition at line 896 of file CIRGenBuilder.h.
Referenced by emitAMDGPUConstantPtrIntrinsic(), emitAMDGPUWorkGroupID(), emitBar0Reduction(), emitBinaryExpMaybeConstrainedFPBuiltin(), emitCommonNeonBuiltinExpr(), emitEncodeKey(), emitLogbBuiltin(), emitX86Aes(), emitX86Aeswide(), emitX86CompressExpand(), emitX86CompressStore(), emitX86CvtF16ToFloatExpr(), emitX86Fpclass(), emitX86FunnelShift(), emitX86MaskAddLogic(), emitX86MaskTest(), emitX86Round(), and genVscaleTimesFactor().
|
inline |
Definition at line 84 of file CIRGenBuilder.h.
References cir::RecordType::getAllDataKinds(), and getAnonRecordTy().
Referenced by getTypeInfo().
|
inline |
Get a CIR anonymous struct type.
Definition at line 401 of file CIRGenBuilder.h.
References cir::MissingFeatures::astRecordDeclAttr().
Referenced by emitLogbBuiltin(), emitX86Aes(), emitX86Aeswide(), getAnonConstRecord(), and getNeonMultiVecTy().
| 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 35 of file CIRGenBuilder.cpp.
References cir::CIRBaseBuilderTy::getPointerTo(), cir::isValidFundamentalIntWidth(), and maybeBuildArrayDecay().
Referenced by emitArraySubscriptPtr(), and emitX86Aeswide().
|
inline |
Definition at line 331 of file CIRGenBuilder.h.
|
inline |
Definition at line 318 of file CIRGenBuilder.h.
References getUInt8Ty().
|
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 150 of file CIRGenBuilder.h.
References cir::MissingFeatures::astRecordDeclAttr(), and clang::ast_matchers::type.
|
inline |
Definition at line 76 of file CIRGenBuilder.h.
Referenced by getNewInitValue().
| cir::ConstantOp clang::CIRGen::CIRGenBuilderTy::getConstFP | ( | mlir::Location | loc, |
| mlir::Type | t, | ||
| llvm::APFloat | fpVal ) |
Definition at line 86 of file CIRGenBuilder.cpp.
| cir::ConstantOp CIRGenBuilderTy::getConstInt | ( | mlir::Location | loc, |
| llvm::APInt | intVal, | ||
| bool | isUnsigned = true ) |
Definition at line 73 of file CIRGenBuilder.cpp.
References getConstInt(), and isUnsigned().
| cir::ConstantOp CIRGenBuilderTy::getConstInt | ( | mlir::Location | loc, |
| llvm::APSInt | intVal ) |
Definition at line 64 of file CIRGenBuilder.cpp.
References getConstInt(), getSIntNTy(), and getUIntNTy().
Referenced by emitAtomicCmpXchg(), emitCommonNeonSISDBuiltinExpr(), emitCXXNewAllocSize(), emitExactDynamicCast(), emitLibCallForAtomicExpr(), emitNeonRShiftImm(), emitStdcBitCeil(), emitStdcBitFloor(), emitStdcBitWidthMinus(), emitStdcFirstBit(), emitStdcHasSingleBit(), getConstInt(), getConstInt(), and vecExtendIntValue().
| cir::ConstantOp CIRGenBuilderTy::getConstInt | ( | mlir::Location | loc, |
| mlir::Type | t, | ||
| uint64_t | c ) |
Definition at line 79 of file CIRGenBuilder.cpp.
| mlir::Attribute clang::CIRGen::CIRGenBuilderTy::getConstRecordOrZeroAttr | ( | mlir::ArrayAttr | arrayAttr, |
| cir::RecordType | recordTy ) |
Definition at line 204 of file CIRGenBuilder.cpp.
References isNullValue().
Referenced by getNewInitValue().
|
inline |
Definition at line 228 of file CIRGenBuilder.h.
Referenced by clang::CIRGen::ConstantEmitter::tryEmitPrivate().
|
inline |
Definition at line 333 of file CIRGenBuilder.h.
|
inline |
Definition at line 359 of file CIRGenBuilder.h.
Referenced by getExtendedOrTruncatedElementVectorType().
|
inline |
Definition at line 386 of file CIRGenBuilder.h.
References getExtendedIntTy(), and getTruncatedIntTy().
Referenced by deriveNeonBinaryArgType(), and emitCommonNeonBuiltinExpr().
|
inline |
Definition at line 330 of file CIRGenBuilder.h.
|
inline |
Definition at line 129 of file CIRGenBuilder.h.
Referenced by getBadCastFn(), and getItaniumDynamicCastFn().
|
inline |
Get an incomplete CIR record 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 175 of file CIRGenBuilder.h.
References clang::TagDecl::getTagKind(), tagKindIsClass(), and tagKindIsUnion().
|
inline |
Definition at line 113 of file CIRGenBuilder.h.
|
inline |
Definition at line 233 of file CIRGenBuilder.h.
|
inline |
Definition at line 125 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getPointerTo().
|
inline |
Definition at line 332 of file CIRGenBuilder.h.
|
inline |
Definition at line 321 of file CIRGenBuilder.h.
Referenced by getSIntNTy().
|
inline |
Definition at line 411 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getConstantInt(), getSInt32Ty(), and int32_t.
Referenced by emitEncodeKey().
|
inline |
Definition at line 322 of file CIRGenBuilder.h.
Referenced by createVecShuffle(), emitAMDGPUWorkGroupSize(), emitBar0Reduction(), emitLogbBuiltin(), emitX86MaskTest(), emitX86MaskUnpack(), emitX86VPerm2f128(), getIntVecFromVecTy(), getMaskVecValue(), getPersonalityFn(), getSInt32(), and getSIntNTy().
|
inline |
Definition at line 417 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getConstantInt(), and getSInt64Ty().
Referenced by performTypeAdjustment().
|
inline |
Definition at line 323 of file CIRGenBuilder.h.
Referenced by emitX86MaskedCompareResult(), emitX86Muldq(), getIntVecFromVecTy(), getSInt64(), and getSIntNTy().
|
inline |
Definition at line 320 of file CIRGenBuilder.h.
Referenced by getSIntNTy().
|
inline |
Definition at line 301 of file CIRGenBuilder.h.
References getSInt16Ty(), getSInt32Ty(), getSInt64Ty(), and getSInt8Ty().
Referenced by createNeg(), createThreeWayCmpPartialOrdering(), createThreeWayCmpTotalOrdering(), emitAArch64CompareBuiltinExpr(), emitCXXNewAllocSize(), emitX86Fpclass(), emitX86MaskedCompare(), emitX86vpcom(), getConstInt(), getMaskVecValue(), getMaskZeroBitAsBool(), and getSignChangedVectorType().
|
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 44 of file CIRGenBuilder.h.
|
inline |
Definition at line 372 of file CIRGenBuilder.h.
Referenced by getExtendedOrTruncatedElementVectorType().
|
inline |
Definition at line 96 of file CIRGenBuilder.h.
References getAnonConstRecord().
|
inline |
Definition at line 326 of file CIRGenBuilder.h.
Referenced by emitAMDGPUWorkGroupSizeV4(), emitAMDGPUWorkGroupSizeV5(), and getUIntNTy().
|
inline |
Definition at line 414 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getConstantInt(), getUInt32Ty(), and uint32_t.
Referenced by emitX86Aeswide().
|
inline |
Definition at line 327 of file CIRGenBuilder.h.
Referenced by emitAMDGPUGridSize(), emitAMDGPUWorkGroupID(), emitAMDGPUWorkGroupSizeV4(), emitAMDGPUWorkGroupSizeV5(), emitEncodeKey(), getUInt32(), and getUIntNTy().
|
inline |
Definition at line 420 of file CIRGenBuilder.h.
References cir::CIRBaseBuilderTy::getConstantInt(), and getUInt64Ty().
Referenced by emitAddrOfZeroSizeField(), emitAMDGPUGridSize(), emitAMDGPUWorkGroupSizeV4(), emitAMDGPUWorkGroupSizeV5(), emitVecInsert(), and genVscaleTimesFactor().
|
inline |
Definition at line 328 of file CIRGenBuilder.h.
Referenced by emitEncodeKey(), emitExactDynamicCast(), getUInt64(), and getUIntNTy().
|
inline |
Definition at line 397 of file CIRGenBuilder.h.
Referenced by emitBuiltinAlloca(), emitExactDynamicCast(), clang::CIRGen::CIRGenVTables::emitVTTDefinition(), getItaniumDynamicCastFn(), and performTypeAdjustment().
|
inline |
Definition at line 325 of file CIRGenBuilder.h.
Referenced by createMemSet(), createMemSet(), emitAddrOfZeroSizeField(), emitBuiltinAlloca(), emitCommonNeonBuiltinExpr(), getBoolMemoryTy(), and getUIntNTy().
|
inline |
Definition at line 286 of file CIRGenBuilder.h.
References getUInt16Ty(), getUInt32Ty(), getUInt64Ty(), and getUInt8Ty().
Referenced by emitCXXNewAllocSize(), emitX86Aes(), emitX86Aeswide(), emitX86FunnelShift(), emitX86MaskedCompareResult(), emitX86vpcom(), getConstInt(), and getSignChangedVectorType().
|
inline |
Definition at line 101 of file CIRGenBuilder.h.
References getUniqueRecordName().
|
inline |
Definition at line 103 of file CIRGenBuilder.h.
Referenced by getUniqueAnonRecordName().
|
inline |
Definition at line 316 of file CIRGenBuilder.h.
Referenced by emitPrefetch().
|
inline |
Definition at line 424 of file CIRGenBuilder.h.
Referenced by emitNeonRShiftImm(), emitX86PackedByteShift(), and emitX86VPerm2f128().
|
inline |
Definition at line 357 of file CIRGenBuilder.h.
|
inline |
Definition at line 348 of file CIRGenBuilder.h.
|
inline |
Definition at line 351 of file CIRGenBuilder.h.
|
inline |
Definition at line 354 of file CIRGenBuilder.h.
|
inline |
Definition at line 345 of file CIRGenBuilder.h.
|
inline |
Definition at line 239 of file CIRGenBuilder.h.
References isNullValue().
Referenced by emitNullBaseClassInitialization(), getConstRecordOrZeroAttr(), isNullValue(), 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().
|
inline |
Definition at line 882 of file CIRGenBuilder.h.
|
inlinestatic |
Get a CIR record kind from a AST declaration tag.
Returns true if the tag kind represents a C++ class (as opposed to a plain struct).
Definition at line 137 of file CIRGenBuilder.h.
References clang::Class, and kind.
Referenced by getIncompleteRecordTy().
|
inlinestatic |
Returns true if the tag kind is a union.
Definition at line 142 of file CIRGenBuilder.h.
References kind, and clang::Union.
Referenced by getIncompleteRecordTy().