|
clang 24.0.0git
|
#include "clang/CIR/Dialect/Builder/CIRBaseBuilder.h"
Classes | |
| struct | GetMethodResults |
Public Member Functions | |
| 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. | |
| 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 | 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={}) |
| 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) |
| 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::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::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::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) |
| 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) |
| 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 unsigned | getCIRIntOrFloatBitWidth (mlir::Type eltTy) |
| static OpBuilder::InsertPoint | getBestAllocaInsertPoint (mlir::Block *block) |
Public Attributes | |
| bool | isFPConstrained = false |
| clang::LangOptions::FPExceptionModeKind | defaultConstrainedExcept |
| llvm::RoundingMode | defaultConstrainedRounding |
Definition at line 65 of file CIRBaseBuilder.h.
|
inline |
Definition at line 68 of file CIRBaseBuilder.h.
Referenced by clang::CIRGen::CIRGenBuilderTy::CIRGenBuilderTy().
|
inline |
Definition at line 70 of file CIRBaseBuilder.h.
|
inline |
Definition at line 822 of file CIRBaseBuilder.h.
References cir::None, cir::NoSignedWrap, cir::NoUnsignedWrap, cir::Saturated, and cir::testFlag().
Referenced by buildAlgebraicComplexDiv(), createNSWAdd(), createNUWAdd(), emitCommonNeonBuiltinExpr(), emitLogbBuiltin(), emitStdcFirstBit(), and lowerComplexMul().
|
inline |
Definition at line 718 of file CIRBaseBuilder.h.
References createCast().
Referenced by createAddrSpaceCast(), emitAMDGPUDispatchPtr(), and getCorrectedPtr().
|
inline |
Definition at line 723 of file CIRBaseBuilder.h.
References createAddrSpaceCast().
|
inline |
Definition at line 345 of file CIRBaseBuilder.h.
References createLoad().
|
inline |
Definition at line 458 of file CIRBaseBuilder.h.
References createAlloca(), and getAlignmentAttr().
|
inline |
Definition at line 453 of file CIRBaseBuilder.h.
|
inline |
Definition at line 438 of file CIRBaseBuilder.h.
Referenced by createAlloca(), createAlloca(), createDummyValue(), emitBuiltinAlloca(), lowerArrayDtorCtorIntoLoop(), and cir::CIRABIRewriteContext::rewriteVAArg().
|
inline |
Definition at line 445 of file CIRBaseBuilder.h.
References createAlloca(), and getAlignmentAttr().
|
inline |
Definition at line 761 of file CIRBaseBuilder.h.
Referenced by emitX86MaskedCompareResult(), and emitX86Muldq().
|
inline |
Definition at line 696 of file CIRBaseBuilder.h.
References createCast().
|
inline |
Definition at line 692 of file CIRBaseBuilder.h.
References createCast().
Referenced by clang::CIRGen::CIRGenBuilderTy::createElementBitCast(), createPtrBitcast(), emitAArch64CompareBuiltinExpr(), emitAtomicIsLockFree(), emitBuiltinAlloca(), emitCommonNeonBuiltinExpr(), emitCommonNeonShift(), emitCommonNeonSISDBuiltinExpr(), emitDeclDestroy(), emitEncodeKey(), emitExactDynamicCast(), emitGlobalVarDeclLValue(), emitNeonCallToOp(), emitNeonRShiftImm(), emitVectorFCmp(), emitX86MaskAddLogic(), emitX86MaskedCompareResult(), emitX86MaskLogic(), emitX86MaskUnpack(), emitX86Muldq(), emitX86vpcom(), getCorrectedPtr(), getMaskVecValue(), getMaskZeroBitAsBool(), packArgsIntoNVPTXFormatBuffer(), and performTypeAdjustment().
|
inline |
Definition at line 655 of file CIRBaseBuilder.h.
References createBoolToInt(), createIntCast(), and getBoolTy().
|
inline |
Definition at line 688 of file CIRBaseBuilder.h.
References createCast().
Referenced by createBoolIntToIntCast(), and emitBar0Reduction().
|
inline |
Create a break operation.
Definition at line 410 of file CIRBaseBuilder.h.
Referenced by emitAtomicCmpXchgFailureSet(), and emitAtomicOp().
|
inline |
Definition at line 667 of file CIRBaseBuilder.h.
Referenced by createBuiltinIntCast().
|
inline |
Definition at line 672 of file CIRBaseBuilder.h.
References createBuiltinIntCast().
|
inline |
Definition at line 604 of file CIRBaseBuilder.h.
|
inline |
Definition at line 576 of file CIRBaseBuilder.h.
Referenced by buildComplexBinOpLibCall(), emitAtomicIsLockFree(), emitCallLikeOp(), emitDeclDestroy(), and pushTemporaryCleanup().
|
inline |
Definition at line 627 of file CIRBaseBuilder.h.
|
inline |
Definition at line 647 of file CIRBaseBuilder.h.
References createCast(), and kind.
|
inline |
Definition at line 640 of file CIRBaseBuilder.h.
References kind.
Referenced by createAddrSpaceCast(), createBitcast(), createBitcast(), createBoolToInt(), createCast(), createIntCast(), createIntToPtr(), createPtrToBoolCast(), createPtrToInt(), emitAArch64CompareBuiltinExpr(), emitCommonNeonBuiltinExpr(), emitPointerArithmetic(), emitX86Aes(), emitX86Aeswide(), emitX86CvtF16ToFloatExpr(), emitX86SExtMask(), lowerComplexDiv(), lowerComplexToComplexCast(), and lowerComplexToScalarCast().
|
inline |
Definition at line 901 of file CIRBaseBuilder.h.
References getConstrainedFPAttr(), and kind.
Referenced by buildRangeReductionComplexDiv(), createIsNaN(), createPtrIsNotNull(), createPtrIsNull(), emitAArch64CompareBuiltinExpr(), emitBar0Reduction(), emitBuiltinBitOpWithFallback(), emitCXXNewAllocSize(), emitExactDynamicCast(), emitLogbBuiltin(), emitStdcBitCeil(), emitStdcBitFloor(), emitStdcFirstBit(), and emitStdcHasSingleBit().
|
inline |
Definition at line 331 of file CIRBaseBuilder.h.
|
inline |
Definition at line 310 of file CIRBaseBuilder.h.
Referenced by buildAlgebraicComplexDiv(), buildRangeReductionComplexDiv(), lowerComplexDiv(), lowerComplexMul(), lowerComplexToComplexCast(), and lowerScalarToComplexCast().
|
inline |
Definition at line 324 of file CIRBaseBuilder.h.
Referenced by lowerComplexDiv(), lowerComplexToComplexCast(), and lowerComplexToScalarCast().
|
inline |
Definition at line 317 of file CIRBaseBuilder.h.
Referenced by lowerComplexDiv(), lowerComplexToComplexCast(), and lowerComplexToScalarCast().
|
inline |
Create a loop condition.
Definition at line 1030 of file CIRBaseBuilder.h.
References condition.
Referenced by lowerArrayDtorCtorIntoLoop().
|
inline |
Create a continue operation.
Definition at line 415 of file CIRBaseBuilder.h.
|
inline |
Create a copy with inferred length.
Definition at line 506 of file CIRBaseBuilder.h.
|
inline |
Definition at line 424 of file CIRBaseBuilder.h.
|
inline |
Definition at line 841 of file CIRBaseBuilder.h.
Referenced by buildAlgebraicComplexDiv().
|
inline |
Create a do-while operation.
Definition at line 359 of file CIRBaseBuilder.h.
Referenced by lowerArrayDtorCtorIntoLoop().
|
inline |
Definition at line 556 of file CIRBaseBuilder.h.
References createAlloca(), getAlignmentAttr(), and getPointerTo().
|
inline |
Definition at line 731 of file CIRBaseBuilder.h.
References getConstAPInt(), and getUIntNTy().
Referenced by getMaskZeroBitAsBool().
|
inline |
Definition at line 849 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
Referenced by buildAlgebraicComplexDiv(), buildRangeReductionComplexDiv(), and lowerComplexMul().
|
inline |
Definition at line 867 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
Referenced by buildAlgebraicComplexDiv(), and buildRangeReductionComplexDiv().
|
inline |
Emit a load from an boolean flag variable.
Definition at line 527 of file CIRBaseBuilder.h.
References createLoad(), createPtrBitcast(), and getBoolTy().
Referenced by emitCleanupBody().
|
inline |
Definition at line 534 of file CIRBaseBuilder.h.
References createStore(), and getBool().
Referenced by setupCleanupBlockDeactivation().
|
inline |
Definition at line 861 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
Referenced by buildAlgebraicComplexDiv(), buildRangeReductionComplexDiv(), and lowerComplexMul().
|
inline |
Definition at line 879 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), and cir::MissingFeatures::metaDataNode().
Referenced by buildFMulAdd().
|
inline |
Create a for operation.
Definition at line 387 of file CIRBaseBuilder.h.
|
inline |
Create a for operation with a per-iteration cleanup region.
Definition at line 397 of file CIRBaseBuilder.h.
|
inline |
Definition at line 873 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
|
inline |
Definition at line 855 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
Referenced by buildAlgebraicComplexDiv(), buildRangeReductionComplexDiv(), and lowerComplexMul().
|
inline |
Definition at line 500 of file CIRBaseBuilder.h.
References createGetGlobal().
|
inline |
Definition at line 492 of file CIRBaseBuilder.h.
References getPointerTo().
Referenced by createGetGlobal(), createReferenceTemporary(), emitDeclDestroy(), and pushTemporaryCleanup().
|
inline |
Definition at line 550 of file CIRBaseBuilder.h.
|
inline |
Definition at line 1044 of file CIRBaseBuilder.h.
References cir::MissingFeatures::addressSpace(), getPointerTo(), and getVoidPtrTy().
|
inlinenodiscard |
Definition at line 540 of file CIRBaseBuilder.h.
|
inline |
Definition at line 419 of file CIRBaseBuilder.h.
|
inline |
Definition at line 615 of file CIRBaseBuilder.h.
Referenced by emitCallLikeOp().
|
inline |
Definition at line 738 of file CIRBaseBuilder.h.
References getConstAPInt(), and getUIntNTy().
|
inline |
Definition at line 663 of file CIRBaseBuilder.h.
References createCast().
Referenced by createBoolIntToIntCast(), createBuiltinBitOp(), clang::CIRGen::CIRGenBuilderTy::createNeg(), emitAsmStores(), emitCommonNeonBuiltinExpr(), emitCXXNewAllocSize(), emitNeonMultiVecLoadLane(), emitNeonShiftVector(), emitStdcBitWidthMinus(), emitStdcCountOp(), emitStdcFirstBit(), emitX86FunnelShift(), and vecExtendIntValue().
|
inline |
Definition at line 676 of file CIRBaseBuilder.h.
References createCast().
Referenced by emitAsmStores(), emitFromInt(), and emitPointerArithmetic().
|
inline |
Definition at line 923 of file CIRBaseBuilder.h.
References createCompare().
Referenced by lowerComplexMul().
|
inline |
Definition at line 335 of file CIRBaseBuilder.h.
References getAlignmentAttr().
Referenced by createAlignedLoad(), and createFlagLoad().
|
inline |
Definition at line 777 of file CIRBaseBuilder.h.
References createSelect(), and getBool().
Referenced by lowerComplexMul().
|
inline |
Definition at line 782 of file CIRBaseBuilder.h.
References createSelect(), and getBool().
Referenced by lowerComplexToScalarCast().
|
inline |
Definition at line 754 of file CIRBaseBuilder.h.
References getConstAPInt().
|
inline |
Definition at line 893 of file CIRBaseBuilder.h.
|
inline |
Definition at line 897 of file CIRBaseBuilder.h.
|
inline |
Definition at line 429 of file CIRBaseBuilder.h.
Referenced by clang::CIRGen::CIRGenBuilderTy::createNeg().
|
inline |
Definition at line 787 of file CIRBaseBuilder.h.
References cir::None, cir::NoSignedWrap, cir::NoUnsignedWrap, and cir::testFlag().
Referenced by buildAlgebraicComplexDiv(), createNSWMul(), createNUWAMul(), emitCXXNewAllocSize(), emitPointerArithmetic(), emitX86Muldq(), and lowerComplexMul().
|
inline |
Definition at line 350 of file CIRBaseBuilder.h.
Referenced by createNot(), emitAtomicCmpXchg(), emitBinaryAtomicPost(), emitExactDynamicCast(), emitStdcCountOp(), emitStdcFirstBit(), emitVectorFCmp(), and emitX86MaskLogic().
|
inline |
Definition at line 354 of file CIRBaseBuilder.h.
References createNot().
|
inline |
Definition at line 831 of file CIRBaseBuilder.h.
References createAdd(), and cir::NoSignedWrap.
|
inline |
Definition at line 794 of file CIRBaseBuilder.h.
References createMul(), and cir::NoSignedWrap.
|
inline |
Definition at line 812 of file CIRBaseBuilder.h.
References createSub(), and cir::NoSignedWrap.
|
inline |
Definition at line 836 of file CIRBaseBuilder.h.
References createAdd(), and cir::NoUnsignedWrap.
|
inline |
Definition at line 798 of file CIRBaseBuilder.h.
References createMul(), and cir::NoUnsignedWrap.
Referenced by genVscaleTimesFactor().
|
inline |
Definition at line 817 of file CIRBaseBuilder.h.
References createSub(), and cir::NoUnsignedWrap.
|
inline |
Definition at line 765 of file CIRBaseBuilder.h.
Referenced by emitCXXNewAllocSize().
|
inline |
Definition at line 701 of file CIRBaseBuilder.h.
References createBitcast(), and getPointerTo().
Referenced by clang::CIRGen::CIRGenBuilderTy::createAlignedLoad(), createFlagLoad(), emitAddrOfZeroSizeField(), emitAtomicCmpXchg(), emitLibCallForAtomicExpr(), emitNeonMultiVecLoadCall(), emitPrefetch(), and clang::CIRGen::Address::withElementType().
|
inline |
Definition at line 713 of file CIRBaseBuilder.h.
References createCompare(), and getNullPtr().
Referenced by performReturnAdjustment().
|
inline |
Definition at line 708 of file CIRBaseBuilder.h.
References createCompare(), and getNullPtr().
Referenced by emitCXXTypeidOperand().
|
inline |
Definition at line 567 of file CIRBaseBuilder.h.
Referenced by emitAddrOfZeroSizeField(), and emitEncodeKey().
|
inline |
Definition at line 684 of file CIRBaseBuilder.h.
References createCast(), and getBoolTy().
|
inline |
Definition at line 680 of file CIRBaseBuilder.h.
References createCast().
Referenced by emitAsmStores(), and emitToInt().
|
inline |
Definition at line 845 of file CIRBaseBuilder.h.
|
inline |
Definition at line 769 of file CIRBaseBuilder.h.
References condition.
Referenced by createLogicalAnd(), createLogicalOr(), emitBuiltinBitOpWithFallback(), emitCXXNewAllocSize(), emitLogbBuiltin(), emitStdcBitCeil(), emitStdcBitFloor(), emitStdcFirstBit(), and emitX86ScalarSelect().
|
inline |
Definition at line 933 of file CIRBaseBuilder.h.
References createShift(), and getConstAPInt().
|
inline |
Definition at line 927 of file CIRBaseBuilder.h.
Referenced by createShift(), createShift(), createShiftLeft(), createShiftLeft(), createShiftRight(), createShiftRight(), and emitX86Muldq().
|
inline |
Definition at line 939 of file CIRBaseBuilder.h.
References createShift().
|
inline |
Definition at line 956 of file CIRBaseBuilder.h.
References createShift().
|
inline |
Definition at line 946 of file CIRBaseBuilder.h.
References createShift().
Referenced by emitStdcBitCeil(), and emitStdcBitFloor().
|
inline |
Definition at line 961 of file CIRBaseBuilder.h.
References createShift().
|
inline |
Definition at line 951 of file CIRBaseBuilder.h.
References createShift().
Referenced by emitCommonNeonBuiltinExpr().
|
inline |
Definition at line 745 of file CIRBaseBuilder.h.
Referenced by emitSignBit().
|
inline |
Definition at line 514 of file CIRBaseBuilder.h.
Referenced by createFlagStore(), and lowerArrayDtorCtorIntoLoop().
|
inline |
Definition at line 803 of file CIRBaseBuilder.h.
References cir::None, cir::NoSignedWrap, cir::NoUnsignedWrap, cir::Saturated, and cir::testFlag().
Referenced by buildAlgebraicComplexDiv(), createNSWSub(), createNUWSub(), emitCommonNeonBuiltinExpr(), emitStdcBitCeil(), emitStdcBitFloor(), emitStdcBitWidthMinus(), and lowerComplexMul().
|
inline |
Definition at line 909 of file CIRBaseBuilder.h.
References getCIRIntOrFloatBitWidth(), getConstrainedFPAttr(), getSIntNTy(), and kind.
Referenced by emitAArch64CompareBuiltinExpr(), emitVectorFCmp(), and emitX86vpcom().
|
inline |
Create a while operation.
Definition at line 367 of file CIRBaseBuilder.h.
|
inline |
Create a while operation with a per-iteration cleanup region.
Definition at line 375 of file CIRBaseBuilder.h.
|
inline |
Definition at line 889 of file CIRBaseBuilder.h.
Referenced by emitCommonNeonBuiltinExpr().
|
inline |
Create a yield operation.
Definition at line 1035 of file CIRBaseBuilder.h.
Referenced by buildRangeReductionComplexDiv(), closeConditionalCleanupScope(), emitAtomicCmpXchg(), emitAtomicCmpXchgFailureSet(), emitAtomicExprWithDynamicMemOrder(), emitAtomicOp(), emitCleanup(), emitCleanupBody(), emitExactDynamicCast(), emitX86Aes(), emitX86Aeswide(), lowerArrayDtorCtorIntoLoop(), lowerComplexMul(), and performReturnAdjustment().
|
inline |
Definition at line 1014 of file CIRBaseBuilder.h.
References getConstantInt(), and clang::CharUnits::getQuantity().
|
inline |
Definition at line 1000 of file CIRBaseBuilder.h.
References getAlignmentAttr(), and clang::CharUnits::getQuantity().
Referenced by clang::CIRGen::CIRGenBuilderTy::createAlignedLoad(), createAlloca(), createAlloca(), createDummyValue(), createLoad(), clang::CIRGen::CIRGenBuilderTy::createLoad(), clang::CIRGen::CIRGenBuilderTy::createMemSet(), getAlignmentAttr(), getAlignmentAttr(), lowerArrayDtorCtorIntoLoop(), and packArgsIntoNVPTXFormatBuffer().
|
inline |
Definition at line 1008 of file CIRBaseBuilder.h.
|
inline |
Definition at line 1004 of file CIRBaseBuilder.h.
References getAlignmentAttr().
|
inlinestatic |
Definition at line 980 of file CIRBaseBuilder.h.
Referenced by createReferenceTemporary(), and hoistAllocaOutOfCleanupScope().
|
inline |
Definition at line 153 of file CIRBaseBuilder.h.
References getCIRBoolAttr().
Referenced by createFlagStore(), createLogicalAnd(), createLogicalOr(), getFalse(), getTrue(), and setupCleanupBlockDeactivation().
|
inline |
Definition at line 159 of file CIRBaseBuilder.h.
Referenced by createBoolIntToIntCast(), createFlagLoad(), createPtrToBoolCast(), emitAtomicCmpXchg(), emitAtomicCmpXchgFailureSetCheckWeak(), emitAtomicIsLockFree(), emitBar0Reduction(), emitX86Aes(), emitX86Aeswide(), lowerComplexToScalarCast(), and setupCleanupBlockDeactivation().
|
inline |
Definition at line 213 of file CIRBaseBuilder.h.
Referenced by getBool(), getFalseAttr(), getTrueAttr(), and clang::CIRGen::ConstantEmitter::tryEmitPrivate().
|
inlinestatic |
Definition at line 166 of file CIRBaseBuilder.h.
Referenced by createVecCompare().
|
inline |
Definition at line 83 of file CIRBaseBuilder.h.
Referenced by clang::CIRGen::CIRGenBuilderTy::createMaskedLoad(), clang::CIRGen::CIRGenBuilderTy::createVecShuffle(), emitAtomicLockRelease(), emitCXXNewAllocSize(), clang::CIRGen::CIRGenFunction::emitDeclRefLValue(), emitLogbBuiltin(), emitNullBaseClassInitialization(), emitStoresForConstant(), emitX86Muldq(), getConstantInt(), getNullValue(), and vecExtendIntValue().
|
inline |
Definition at line 87 of file CIRBaseBuilder.h.
References getConstant().
Referenced by emitCommonNeonBuiltinExpr(), emitNeonShiftVector(), getAlignment(), clang::CIRGen::CIRGenBuilderTy::getSInt32(), clang::CIRGen::CIRGenBuilderTy::getSInt64(), clang::CIRGen::CIRGenBuilderTy::getUInt32(), and clang::CIRGen::CIRGenBuilderTy::getUInt64().
|
inline |
Definition at line 78 of file CIRBaseBuilder.h.
Referenced by createExtractElement(), createInsertElement(), createLowBitsSet(), createShift(), emitX86MaskedCompare(), emitX86vpcom(), getSignedInt(), and getUnsignedInt().
|
inline |
Definition at line 109 of file CIRBaseBuilder.h.
References getConstPtrAttr().
Referenced by getZeroInitAttr().
|
inline |
Definition at line 434 of file CIRBaseBuilder.h.
Referenced by getConstNullPtrAttr(), and getNullPtr().
|
inline |
Build the #cir.fenv attribute describing the constrained floating-point environment currently in effect.
This is attached to floating-point operations that support it to capture the rounding and exception behavior. Returns a null attribute when constrained floating-point is not enabled, in which case no attribute should be attached.
Definition at line 259 of file CIRBaseBuilder.h.
References defaultConstrainedExcept, defaultConstrainedRounding, clang::LangOptionsBase::FPE_Ignore, clang::LangOptionsBase::FPE_MayTrap, clang::LangOptionsBase::FPE_Strict, and isFPConstrained.
Referenced by createCompare(), createFAdd(), createFDiv(), clang::CIRGen::CIRGenBuilderTy::createFloatingCast(), createFMul(), createFRem(), createFSub(), createVecCompare(), emitBinaryMaybeConstrainedFPBuiltin(), emitTernaryMaybeConstrainedFPBuiltin(), emitUnaryMaybeConstrainedFPBuiltin(), and emitUnaryMaybeConstrainedFPToIntBuiltin().
|
inline |
Get the exception handling used with constrained floating point.
Definition at line 240 of file CIRBaseBuilder.h.
References defaultConstrainedExcept.
|
inline |
Get the rounding mode handling used with constrained floating point.
Definition at line 250 of file CIRBaseBuilder.h.
References defaultConstrainedRounding.
|
inline |
Definition at line 156 of file CIRBaseBuilder.h.
References getBool().
|
inline |
Definition at line 218 of file CIRBaseBuilder.h.
References getCIRBoolAttr().
Referenced by getZeroInitAttr().
|
inline |
Get constant address of a global variable as an MLIR attribute.
This wrapper infers the attribute type through the global op.
Definition at line 466 of file CIRBaseBuilder.h.
Referenced by createNewGlobalView(), getGlobalViewAttr(), and tryEmitGlobalCompoundLiteral().
|
inline |
Get constant address of a global variable as an MLIR attribute.
This overload converts raw int64_t indices to an ArrayAttr.
Definition at line 482 of file CIRBaseBuilder.h.
References getGlobalViewAttr().
|
inline |
Get constant address of a global variable as an MLIR attribute.
Definition at line 473 of file CIRBaseBuilder.h.
|
inline |
Query for the use of constrained floating point math.
Definition at line 231 of file CIRBaseBuilder.h.
References isFPConstrained.
Referenced by emitBinaryExpMaybeConstrainedFPBuiltin().
|
inline |
Definition at line 204 of file CIRBaseBuilder.h.
|
inline |
Definition at line 114 of file CIRBaseBuilder.h.
Referenced by getZeroInitAttr().
|
inline |
Definition at line 209 of file CIRBaseBuilder.h.
Referenced by getZeroInitAttr().
|
inline |
Definition at line 1024 of file CIRBaseBuilder.h.
References getConstPtrAttr(), and cir::MissingFeatures::targetCodeGenInfoGetNullPointer().
Referenced by createPtrIsNotNull(), createPtrIsNull(), emitAtomicIsLockFree(), emitDynamicCastToNull(), emitExactDynamicCast(), packArgsIntoNVPTXFormatBuffer(), and performReturnAdjustment().
|
inline |
Definition at line 105 of file CIRBaseBuilder.h.
References getConstant(), and getZeroInitAttr().
Referenced by emitAArch64CompareBuiltinExpr(), emitBar0Reduction(), emitBuiltinBitOpWithFallback(), emitStdcBitFloor(), emitStdcFirstBit(), emitX86Aes(), emitX86Aeswide(), emitX86ConvertToMask(), emitX86MaskedCompare(), emitX86MaskedCompareResult(), emitX86vpcom(), and lowerScalarToComplexCast().
|
inline |
Definition at line 178 of file CIRBaseBuilder.h.
Referenced by clang::CIRGen::CIRGenBuilderTy::createBaseClassAddr(), clang::CIRGen::CIRGenBuilderTy::createComplexImagPtr(), clang::CIRGen::CIRGenBuilderTy::createComplexRealPtr(), clang::CIRGen::CIRGenBuilderTy::createDerivedClassAddr(), createDummyValue(), clang::CIRGen::CIRGenBuilderTy::createElementBitCast(), createGetGlobal(), clang::CIRGen::CIRGenBuilderTy::createGetIndirectMember(), clang::CIRGen::CIRGenBuilderTy::createGetMember(), createGetMethod(), createPtrBitcast(), emitExactDynamicCast(), clang::CIRGen::CIRGenModule::getAddrOfConstantStringFromLiteral(), clang::CIRGen::CIRGenBuilderTy::getArrayElement(), getPointerTo(), clang::CIRGen::CIRGenBuilderTy::getPtrToVPtrType(), getVoidPtrTy(), getVoidPtrTy(), lowerArrayDtorCtorIntoLoop(), clang::CIRGen::CIRGenBuilderTy::maybeBuildArrayDecay(), cir::CIRCXXABI::readArrayCookie(), and cir::CIRABIRewriteContext::rewriteVAArg().
|
inline |
Definition at line 187 of file CIRBaseBuilder.h.
References clang::Default, getPointerTo(), and cir::toCIRAddressSpaceAttr().
|
inline |
Definition at line 182 of file CIRBaseBuilder.h.
|
inline |
Definition at line 92 of file CIRBaseBuilder.h.
References getConstAPInt().
Referenced by lowerArrayDtorCtorIntoLoop().
|
inline |
Definition at line 174 of file CIRBaseBuilder.h.
Referenced by createVecCompare(), and cir::CIRCXXABI::readArrayCookie().
|
inline |
Definition at line 1019 of file CIRBaseBuilder.h.
References clang::CharUnits::getQuantity().
|
inline |
Definition at line 157 of file CIRBaseBuilder.h.
References getBool().
|
inline |
Definition at line 217 of file CIRBaseBuilder.h.
References getCIRBoolAttr().
|
inline |
Definition at line 162 of file CIRBaseBuilder.h.
Referenced by createExtractElement(), createInsertElement(), cir::CIRCXXABI::readArrayCookie(), and cir::CIRABIRewriteContext::rewriteVAArg().
|
inline |
Definition at line 98 of file CIRBaseBuilder.h.
References getConstAPInt().
Referenced by lowerArrayDtorCtorIntoLoop().
|
inline |
Returns void (*)(T...) as a cir::PointerType.
Definition at line 972 of file CIRBaseBuilder.h.
|
inline |
Returns void (T...) as a cir::FuncType.
Definition at line 967 of file CIRBaseBuilder.h.
|
inline |
Definition at line 196 of file CIRBaseBuilder.h.
References clang::Default, and getPointerTo().
Referenced by clang::CIRGen::CIRGenBuilderTy::createDynCastToVoid(), createGetMethod(), emitAtomicIsLockFree(), emitBuiltinAlloca(), emitCommonNeonBuiltinExpr(), emitNeonMultiVecLoad(), emitNeonMultiVecLoadLane(), getItaniumDynamicCastFn(), initCatchParam(), packArgsIntoNVPTXFormatBuffer(), and cir::CIRCXXABI::readArrayCookie().
|
inline |
Definition at line 200 of file CIRBaseBuilder.h.
References getPointerTo().
|
inline |
Definition at line 160 of file CIRBaseBuilder.h.
|
inline |
Definition at line 118 of file CIRBaseBuilder.h.
References getConstNullPtrAttr(), getFalseAttr(), getNullDataMemberAttr(), getNullMethodAttr(), and getZeroInitAttr().
Referenced by collectStoredInitializers(), emitAtomicLockRelease(), emitNullConstant(), emitNullConstantForBase(), getNullValue(), getZeroInitAttr(), and clang::CIRGen::ConstantEmitter::tryEmitPrivate().
|
inline |
Set the exception handling to be used with constrained floating point.
Definition at line 234 of file CIRBaseBuilder.h.
References defaultConstrainedExcept.
|
inline |
Set the rounding mode handling to be used with constrained floating point.
Definition at line 245 of file CIRBaseBuilder.h.
References defaultConstrainedRounding.
|
inline |
Enable/Disable use of constrained floating point math.
When enabled the CreateF<op>() calls instead create constrained floating point intrinsic calls. Fast math flags are unaffected by this setting.
Definition at line 228 of file CIRBaseBuilder.h.
References isFPConstrained.
| clang::LangOptions::FPExceptionModeKind cir::CIRBaseBuilderTy::defaultConstrainedExcept |
Definition at line 73 of file CIRBaseBuilder.h.
Referenced by getConstrainedFPAttr(), getDefaultConstrainedExcept(), and setDefaultConstrainedExcept().
| llvm::RoundingMode cir::CIRBaseBuilderTy::defaultConstrainedRounding |
Definition at line 75 of file CIRBaseBuilder.h.
Referenced by getConstrainedFPAttr(), getDefaultConstrainedRounding(), and setDefaultConstrainedRounding().
Definition at line 72 of file CIRBaseBuilder.h.
Referenced by getConstrainedFPAttr(), getIsFPConstrained(), and setIsFPConstrained().