|
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) |
| 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 815 of file CIRBaseBuilder.h.
References cir::None, cir::NoSignedWrap, cir::NoUnsignedWrap, cir::Saturated, and cir::testFlag().
Referenced by buildAlgebraicComplexDiv(), createNSWAdd(), createNUWAdd(), emitCommonNeonBuiltinExpr(), emitLogbBuiltin(), and lowerComplexMul().
|
inline |
Definition at line 711 of file CIRBaseBuilder.h.
References createCast().
Referenced by createAddrSpaceCast(), emitAMDGPUDispatchPtr(), and getCorrectedPtr().
|
inline |
Definition at line 716 of file CIRBaseBuilder.h.
References createAddrSpaceCast().
|
inline |
Definition at line 338 of file CIRBaseBuilder.h.
References createLoad().
|
inline |
Definition at line 451 of file CIRBaseBuilder.h.
References createAlloca(), and getAlignmentAttr().
|
inline |
Definition at line 446 of file CIRBaseBuilder.h.
|
inline |
Definition at line 431 of file CIRBaseBuilder.h.
Referenced by createAlloca(), createAlloca(), createDummyValue(), emitBuiltinAlloca(), and lowerArrayDtorCtorIntoLoop().
|
inline |
Definition at line 438 of file CIRBaseBuilder.h.
References createAlloca(), and getAlignmentAttr().
|
inline |
Definition at line 754 of file CIRBaseBuilder.h.
Referenced by emitX86MaskedCompareResult(), and emitX86Muldq().
|
inline |
Definition at line 689 of file CIRBaseBuilder.h.
References createCast().
|
inline |
Definition at line 685 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 648 of file CIRBaseBuilder.h.
References createBoolToInt(), createIntCast(), and getBoolTy().
|
inline |
Definition at line 681 of file CIRBaseBuilder.h.
References createCast().
Referenced by createBoolIntToIntCast().
|
inline |
Create a break operation.
Definition at line 403 of file CIRBaseBuilder.h.
Referenced by emitAtomicCmpXchgFailureSet(), and emitAtomicOp().
|
inline |
Definition at line 660 of file CIRBaseBuilder.h.
Referenced by createBuiltinIntCast().
|
inline |
Definition at line 665 of file CIRBaseBuilder.h.
References createBuiltinIntCast().
|
inline |
Definition at line 597 of file CIRBaseBuilder.h.
|
inline |
Definition at line 569 of file CIRBaseBuilder.h.
Referenced by buildComplexBinOpLibCall(), emitAtomicIsLockFree(), emitCallLikeOp(), emitDeclDestroy(), and pushTemporaryCleanup().
|
inline |
Definition at line 620 of file CIRBaseBuilder.h.
|
inline |
Definition at line 640 of file CIRBaseBuilder.h.
References createCast(), and kind.
|
inline |
Definition at line 633 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 890 of file CIRBaseBuilder.h.
References getConstrainedFPAttr(), and kind.
Referenced by buildRangeReductionComplexDiv(), createIsNaN(), createPtrIsNotNull(), createPtrIsNull(), emitAArch64CompareBuiltinExpr(), emitBuiltinBitOpWithFallback(), emitCXXNewAllocSize(), emitExactDynamicCast(), and emitLogbBuiltin().
|
inline |
Definition at line 324 of file CIRBaseBuilder.h.
|
inline |
Definition at line 303 of file CIRBaseBuilder.h.
Referenced by buildAlgebraicComplexDiv(), buildRangeReductionComplexDiv(), lowerComplexDiv(), lowerComplexMul(), lowerComplexToComplexCast(), and lowerScalarToComplexCast().
|
inline |
Definition at line 317 of file CIRBaseBuilder.h.
Referenced by lowerComplexDiv(), lowerComplexToComplexCast(), and lowerComplexToScalarCast().
|
inline |
Definition at line 310 of file CIRBaseBuilder.h.
Referenced by lowerComplexDiv(), lowerComplexToComplexCast(), and lowerComplexToScalarCast().
|
inline |
Create a loop condition.
Definition at line 1019 of file CIRBaseBuilder.h.
References condition.
Referenced by lowerArrayDtorCtorIntoLoop().
|
inline |
Create a continue operation.
Definition at line 408 of file CIRBaseBuilder.h.
|
inline |
Create a copy with inferred length.
Definition at line 499 of file CIRBaseBuilder.h.
|
inline |
Definition at line 417 of file CIRBaseBuilder.h.
|
inline |
Definition at line 834 of file CIRBaseBuilder.h.
Referenced by buildAlgebraicComplexDiv().
|
inline |
Create a do-while operation.
Definition at line 352 of file CIRBaseBuilder.h.
Referenced by lowerArrayDtorCtorIntoLoop().
|
inline |
Definition at line 549 of file CIRBaseBuilder.h.
References createAlloca(), getAlignmentAttr(), and getPointerTo().
|
inline |
Definition at line 724 of file CIRBaseBuilder.h.
References getConstAPInt(), and getUIntNTy().
Referenced by getMaskZeroBitAsBool().
|
inline |
Definition at line 842 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
Referenced by buildAlgebraicComplexDiv(), buildRangeReductionComplexDiv(), and lowerComplexMul().
|
inline |
Definition at line 860 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 520 of file CIRBaseBuilder.h.
References createLoad(), createPtrBitcast(), and getBoolTy().
Referenced by emitCleanupBody().
|
inline |
Definition at line 527 of file CIRBaseBuilder.h.
References createStore(), and getBool().
Referenced by setupCleanupBlockDeactivation().
|
inline |
Definition at line 854 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
Referenced by buildAlgebraicComplexDiv(), buildRangeReductionComplexDiv(), and lowerComplexMul().
|
inline |
Definition at line 872 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), and cir::MissingFeatures::metaDataNode().
Referenced by buildFMulAdd().
|
inline |
Create a for operation.
Definition at line 380 of file CIRBaseBuilder.h.
|
inline |
Create a for operation with a per-iteration cleanup region.
Definition at line 390 of file CIRBaseBuilder.h.
|
inline |
Definition at line 866 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
|
inline |
Definition at line 848 of file CIRBaseBuilder.h.
References cir::MissingFeatures::fastMathFlags(), getConstrainedFPAttr(), and cir::MissingFeatures::metaDataNode().
Referenced by buildAlgebraicComplexDiv(), buildRangeReductionComplexDiv(), and lowerComplexMul().
|
inline |
Definition at line 493 of file CIRBaseBuilder.h.
References createGetGlobal().
|
inline |
Definition at line 485 of file CIRBaseBuilder.h.
References cir::MissingFeatures::addressSpace(), and getPointerTo().
Referenced by createGetGlobal(), createReferenceTemporary(), emitDeclDestroy(), and pushTemporaryCleanup().
|
inline |
Definition at line 543 of file CIRBaseBuilder.h.
|
inline |
Definition at line 1033 of file CIRBaseBuilder.h.
References cir::MissingFeatures::addressSpace(), getPointerTo(), and getVoidPtrTy().
|
inlinenodiscard |
Definition at line 533 of file CIRBaseBuilder.h.
|
inline |
Definition at line 412 of file CIRBaseBuilder.h.
|
inline |
Definition at line 608 of file CIRBaseBuilder.h.
Referenced by emitCallLikeOp().
|
inline |
Definition at line 731 of file CIRBaseBuilder.h.
References getConstAPInt(), and getUIntNTy().
|
inline |
Definition at line 656 of file CIRBaseBuilder.h.
References createCast().
Referenced by createBoolIntToIntCast(), createBuiltinBitOp(), clang::CIRGen::CIRGenBuilderTy::createNeg(), emitAsmStores(), emitCommonNeonBuiltinExpr(), emitCXXNewAllocSize(), emitNeonShiftVector(), emitX86FunnelShift(), and vecExtendIntValue().
|
inline |
Definition at line 669 of file CIRBaseBuilder.h.
References createCast().
Referenced by emitAsmStores(), emitFromInt(), and emitPointerArithmetic().
|
inline |
Definition at line 912 of file CIRBaseBuilder.h.
References createCompare().
Referenced by lowerComplexMul().
|
inline |
Definition at line 328 of file CIRBaseBuilder.h.
References getAlignmentAttr().
Referenced by createAlignedLoad(), and createFlagLoad().
|
inline |
Definition at line 770 of file CIRBaseBuilder.h.
References createSelect(), and getBool().
Referenced by lowerComplexMul().
|
inline |
Definition at line 775 of file CIRBaseBuilder.h.
References createSelect(), and getBool().
Referenced by lowerComplexToScalarCast().
|
inline |
Definition at line 747 of file CIRBaseBuilder.h.
References getConstAPInt().
|
inline |
Definition at line 886 of file CIRBaseBuilder.h.
|
inline |
Definition at line 422 of file CIRBaseBuilder.h.
Referenced by clang::CIRGen::CIRGenBuilderTy::createNeg().
|
inline |
Definition at line 780 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 343 of file CIRBaseBuilder.h.
Referenced by createNot(), emitAtomicCmpXchg(), emitBinaryAtomicPost(), emitExactDynamicCast(), emitVectorFCmp(), and emitX86MaskLogic().
|
inline |
Definition at line 347 of file CIRBaseBuilder.h.
References createNot().
|
inline |
Definition at line 824 of file CIRBaseBuilder.h.
References createAdd(), and cir::NoSignedWrap.
|
inline |
Definition at line 787 of file CIRBaseBuilder.h.
References createMul(), and cir::NoSignedWrap.
|
inline |
Definition at line 805 of file CIRBaseBuilder.h.
References createSub(), and cir::NoSignedWrap.
|
inline |
Definition at line 829 of file CIRBaseBuilder.h.
References createAdd(), and cir::NoUnsignedWrap.
|
inline |
Definition at line 791 of file CIRBaseBuilder.h.
References createMul(), and cir::NoUnsignedWrap.
Referenced by genVscaleTimesFactor().
|
inline |
Definition at line 810 of file CIRBaseBuilder.h.
References createSub(), and cir::NoUnsignedWrap.
|
inline |
Definition at line 758 of file CIRBaseBuilder.h.
Referenced by emitCXXNewAllocSize().
|
inline |
Definition at line 694 of file CIRBaseBuilder.h.
References createBitcast(), and getPointerTo().
Referenced by clang::CIRGen::CIRGenBuilderTy::createAlignedLoad(), createFlagLoad(), emitAddrOfZeroSizeField(), emitAtomicCmpXchg(), emitLibCallForAtomicExpr(), emitPrefetch(), and clang::CIRGen::Address::withElementType().
|
inline |
Definition at line 706 of file CIRBaseBuilder.h.
References createCompare(), and getNullPtr().
Referenced by performReturnAdjustment().
|
inline |
Definition at line 701 of file CIRBaseBuilder.h.
References createCompare(), and getNullPtr().
Referenced by emitCXXTypeidOperand().
|
inline |
Definition at line 560 of file CIRBaseBuilder.h.
Referenced by emitAddrOfZeroSizeField(), and emitEncodeKey().
|
inline |
Definition at line 677 of file CIRBaseBuilder.h.
References createCast(), and getBoolTy().
|
inline |
Definition at line 673 of file CIRBaseBuilder.h.
References createCast().
Referenced by emitAsmStores(), and emitToInt().
|
inline |
Definition at line 838 of file CIRBaseBuilder.h.
|
inline |
Definition at line 762 of file CIRBaseBuilder.h.
References condition.
Referenced by createLogicalAnd(), createLogicalOr(), emitBuiltinBitOpWithFallback(), emitCXXNewAllocSize(), emitLogbBuiltin(), and emitX86ScalarSelect().
|
inline |
Definition at line 922 of file CIRBaseBuilder.h.
References createShift(), and getConstAPInt().
|
inline |
Definition at line 916 of file CIRBaseBuilder.h.
Referenced by createShift(), createShift(), createShiftLeft(), createShiftLeft(), createShiftRight(), createShiftRight(), and emitX86Muldq().
|
inline |
Definition at line 928 of file CIRBaseBuilder.h.
References createShift().
|
inline |
Definition at line 945 of file CIRBaseBuilder.h.
References createShift().
|
inline |
Definition at line 935 of file CIRBaseBuilder.h.
References createShift().
|
inline |
Definition at line 950 of file CIRBaseBuilder.h.
References createShift().
|
inline |
Definition at line 940 of file CIRBaseBuilder.h.
References createShift().
Referenced by emitCommonNeonBuiltinExpr().
|
inline |
Definition at line 738 of file CIRBaseBuilder.h.
Referenced by emitSignBit().
|
inline |
Definition at line 507 of file CIRBaseBuilder.h.
Referenced by createFlagStore(), and lowerArrayDtorCtorIntoLoop().
|
inline |
Definition at line 796 of file CIRBaseBuilder.h.
References cir::None, cir::NoSignedWrap, cir::NoUnsignedWrap, cir::Saturated, and cir::testFlag().
Referenced by buildAlgebraicComplexDiv(), createNSWSub(), createNUWSub(), emitCommonNeonBuiltinExpr(), and lowerComplexMul().
|
inline |
Definition at line 898 of file CIRBaseBuilder.h.
References getCIRIntOrFloatBitWidth(), getConstrainedFPAttr(), getSIntNTy(), and kind.
Referenced by emitAArch64CompareBuiltinExpr(), emitVectorFCmp(), and emitX86vpcom().
|
inline |
Create a while operation.
Definition at line 360 of file CIRBaseBuilder.h.
|
inline |
Create a while operation with a per-iteration cleanup region.
Definition at line 368 of file CIRBaseBuilder.h.
|
inline |
Definition at line 882 of file CIRBaseBuilder.h.
Referenced by emitCommonNeonBuiltinExpr().
|
inline |
Create a yield operation.
Definition at line 1024 of file CIRBaseBuilder.h.
Referenced by buildRangeReductionComplexDiv(), emitAtomicCmpXchg(), emitAtomicCmpXchgFailureSet(), emitAtomicExprWithDynamicMemOrder(), emitAtomicOp(), emitCleanup(), emitCleanupBody(), emitExactDynamicCast(), emitX86Aes(), emitX86Aeswide(), lowerArrayDtorCtorIntoLoop(), lowerComplexMul(), and performReturnAdjustment().
|
inline |
Definition at line 1003 of file CIRBaseBuilder.h.
References getConstantInt(), and clang::CharUnits::getQuantity().
|
inline |
Definition at line 989 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 997 of file CIRBaseBuilder.h.
|
inline |
Definition at line 993 of file CIRBaseBuilder.h.
References getAlignmentAttr().
|
inlinestatic |
Definition at line 969 of file CIRBaseBuilder.h.
Referenced by createReferenceTemporary(), and hoistAllocaOutOfCleanupScope().
|
inline |
Definition at line 146 of file CIRBaseBuilder.h.
References getCIRBoolAttr().
Referenced by createFlagStore(), createLogicalAnd(), createLogicalOr(), getFalse(), getTrue(), and setupCleanupBlockDeactivation().
|
inline |
Definition at line 152 of file CIRBaseBuilder.h.
Referenced by createBoolIntToIntCast(), createFlagLoad(), createPtrToBoolCast(), emitAtomicCmpXchg(), emitAtomicCmpXchgFailureSetCheckWeak(), emitAtomicIsLockFree(), emitX86Aes(), emitX86Aeswide(), lowerComplexToScalarCast(), and setupCleanupBlockDeactivation().
|
inline |
Definition at line 206 of file CIRBaseBuilder.h.
Referenced by getBool(), getFalseAttr(), getTrueAttr(), and clang::CIRGen::ConstantEmitter::tryEmitPrivate().
|
inlinestatic |
Definition at line 159 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(), 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 427 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 252 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 233 of file CIRBaseBuilder.h.
References defaultConstrainedExcept.
|
inline |
Get the rounding mode handling used with constrained floating point.
Definition at line 243 of file CIRBaseBuilder.h.
References defaultConstrainedRounding.
|
inline |
Definition at line 149 of file CIRBaseBuilder.h.
References getBool().
|
inline |
Definition at line 211 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 459 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 475 of file CIRBaseBuilder.h.
References getGlobalViewAttr().
|
inline |
Get constant address of a global variable as an MLIR attribute.
Definition at line 466 of file CIRBaseBuilder.h.
|
inline |
Query for the use of constrained floating point math.
Definition at line 224 of file CIRBaseBuilder.h.
References isFPConstrained.
Referenced by emitBinaryExpMaybeConstrainedFPBuiltin().
|
inline |
Definition at line 197 of file CIRBaseBuilder.h.
|
inline |
Definition at line 114 of file CIRBaseBuilder.h.
Referenced by getZeroInitAttr().
|
inline |
Definition at line 202 of file CIRBaseBuilder.h.
Referenced by getZeroInitAttr().
|
inline |
Definition at line 1013 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(), emitBuiltinBitOpWithFallback(), emitX86Aes(), emitX86Aeswide(), emitX86ConvertToMask(), emitX86MaskedCompare(), emitX86MaskedCompareResult(), emitX86vpcom(), and lowerScalarToComplexCast().
|
inline |
Definition at line 171 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(), and cir::CIRCXXABI::readArrayCookie().
|
inline |
Definition at line 180 of file CIRBaseBuilder.h.
References clang::Default, getPointerTo(), and cir::toCIRAddressSpaceAttr().
|
inline |
Definition at line 175 of file CIRBaseBuilder.h.
|
inline |
Definition at line 92 of file CIRBaseBuilder.h.
References getConstAPInt().
Referenced by lowerArrayDtorCtorIntoLoop().
|
inline |
Definition at line 167 of file CIRBaseBuilder.h.
Referenced by createVecCompare(), and cir::CIRCXXABI::readArrayCookie().
|
inline |
Definition at line 1008 of file CIRBaseBuilder.h.
References clang::CharUnits::getQuantity().
|
inline |
Definition at line 150 of file CIRBaseBuilder.h.
References getBool().
|
inline |
Definition at line 210 of file CIRBaseBuilder.h.
References getCIRBoolAttr().
|
inline |
Definition at line 155 of file CIRBaseBuilder.h.
Referenced by createExtractElement(), createInsertElement(), and cir::CIRCXXABI::readArrayCookie().
|
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 961 of file CIRBaseBuilder.h.
|
inline |
Returns void (T...) as a cir::FuncType.
Definition at line 956 of file CIRBaseBuilder.h.
|
inline |
Definition at line 189 of file CIRBaseBuilder.h.
References clang::Default, and getPointerTo().
Referenced by clang::CIRGen::CIRGenBuilderTy::createDynCastToVoid(), createGetMethod(), emitAtomicIsLockFree(), emitBuiltinAlloca(), emitCommonNeonBuiltinExpr(), getItaniumDynamicCastFn(), initCatchParam(), packArgsIntoNVPTXFormatBuffer(), and cir::CIRCXXABI::readArrayCookie().
|
inline |
Definition at line 193 of file CIRBaseBuilder.h.
References getPointerTo().
|
inline |
Definition at line 153 of file CIRBaseBuilder.h.
|
inline |
Definition at line 118 of file CIRBaseBuilder.h.
References getConstNullPtrAttr(), getFalseAttr(), getNullDataMemberAttr(), and getNullMethodAttr().
Referenced by emitNullConstant(), emitNullConstantForBase(), getNullValue(), and clang::CIRGen::ConstantEmitter::tryEmitPrivate().
|
inline |
Set the exception handling to be used with constrained floating point.
Definition at line 227 of file CIRBaseBuilder.h.
References defaultConstrainedExcept.
|
inline |
Set the rounding mode handling to be used with constrained floating point.
Definition at line 238 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 221 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().