clang 24.0.0git
cir::CIRBaseBuilderTy Class Reference

#include "clang/CIR/Dialect/Builder/CIRBaseBuilder.h"

Inheritance diagram for cir::CIRBaseBuilderTy:
[legend]

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.
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 unsigned getCIRIntOrFloatBitWidth (mlir::Type eltTy)
static OpBuilder::InsertPoint getBestAllocaInsertPoint (mlir::Block *block)

Public Attributes

bool isFPConstrained = false
clang::LangOptions::FPExceptionModeKind defaultConstrainedExcept
llvm::RoundingMode defaultConstrainedRounding
cir::FastMathFlags fastMathFlags = cir::FastMathFlags::none

Detailed Description

Definition at line 65 of file CIRBaseBuilder.h.

Constructor & Destructor Documentation

◆ CIRBaseBuilderTy() [1/2]

cir::CIRBaseBuilderTy::CIRBaseBuilderTy ( mlir::MLIRContext & mlirContext)
inline

Definition at line 68 of file CIRBaseBuilder.h.

Referenced by clang::CIRGen::CIRGenBuilderTy::CIRGenBuilderTy().

◆ CIRBaseBuilderTy() [2/2]

cir::CIRBaseBuilderTy::CIRBaseBuilderTy ( mlir::OpBuilder & builder)
inline

Definition at line 70 of file CIRBaseBuilder.h.

Member Function Documentation

◆ createAdd()

mlir::Value cir::CIRBaseBuilderTy::createAdd ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs,
OverflowBehavior ob = OverflowBehavior::None )
inline

◆ createAddrSpaceCast() [1/2]

mlir::Value cir::CIRBaseBuilderTy::createAddrSpaceCast ( mlir::Location loc,
mlir::Value src,
mlir::Type newTy )
inline

Definition at line 777 of file CIRBaseBuilder.h.

References createCast().

Referenced by createAddrSpaceCast(), emitAMDGPUDispatchPtr(), and getCorrectedPtr().

◆ createAddrSpaceCast() [2/2]

mlir::Value cir::CIRBaseBuilderTy::createAddrSpaceCast ( mlir::Value src,
mlir::Type newTy )
inline

Definition at line 782 of file CIRBaseBuilder.h.

References createAddrSpaceCast().

◆ createAlignedLoad()

mlir::Value cir::CIRBaseBuilderTy::createAlignedLoad ( mlir::Location loc,
mlir::Value ptr,
uint64_t alignment )
inline

Definition at line 397 of file CIRBaseBuilder.h.

References createLoad().

◆ createAlloca() [1/4]

mlir::Value cir::CIRBaseBuilderTy::createAlloca ( mlir::Location loc,
cir::PointerType addrType,
llvm::StringRef name,
clang::CharUnits alignment )
inline

Definition at line 510 of file CIRBaseBuilder.h.

References createAlloca(), and getAlignmentAttr().

◆ createAlloca() [2/4]

mlir::Value cir::CIRBaseBuilderTy::createAlloca ( mlir::Location loc,
cir::PointerType addrType,
llvm::StringRef name,
mlir::IntegerAttr alignment )
inline

Definition at line 505 of file CIRBaseBuilder.h.

◆ createAlloca() [3/4]

mlir::Value cir::CIRBaseBuilderTy::createAlloca ( mlir::Location loc,
cir::PointerType addrType,
llvm::StringRef name,
mlir::IntegerAttr alignment,
mlir::Value dynAllocSize )
inline

◆ createAlloca() [4/4]

mlir::Value cir::CIRBaseBuilderTy::createAlloca ( mlir::Location loc,
cir::PointerType addrType,
mlir::Type type,
llvm::StringRef name,
clang::CharUnits alignment,
mlir::Value dynAllocSize )
inline

Definition at line 497 of file CIRBaseBuilder.h.

References createAlloca(), and getAlignmentAttr().

◆ createAnd()

mlir::Value cir::CIRBaseBuilderTy::createAnd ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 820 of file CIRBaseBuilder.h.

Referenced by emitX86MaskedCompareResult(), and emitX86Muldq().

◆ createBitcast() [1/2]

mlir::Value cir::CIRBaseBuilderTy::createBitcast ( mlir::Location loc,
mlir::Value src,
mlir::Type newTy )
inline

Definition at line 755 of file CIRBaseBuilder.h.

References createCast().

◆ createBitcast() [2/2]

◆ createBoolIntToIntCast()

mlir::Value cir::CIRBaseBuilderTy::createBoolIntToIntCast ( mlir::Value src,
mlir::Type newTy )
inline

Definition at line 714 of file CIRBaseBuilder.h.

References createBoolToInt(), createIntCast(), and getBoolTy().

◆ createBoolToInt()

mlir::Value cir::CIRBaseBuilderTy::createBoolToInt ( mlir::Value src,
mlir::Type newTy )
inline

Definition at line 747 of file CIRBaseBuilder.h.

References createCast().

Referenced by createBoolIntToIntCast(), and emitBar0Reduction().

◆ createBreak()

cir::BreakOp cir::CIRBaseBuilderTy::createBreak ( mlir::Location loc)
inline

Create a break operation.

Definition at line 462 of file CIRBaseBuilder.h.

Referenced by emitAtomicCmpXchgFailureSet(), and emitAtomicOp().

◆ createBuiltinIntCast() [1/2]

mlir::Value cir::CIRBaseBuilderTy::createBuiltinIntCast ( mlir::Location loc,
mlir::Value src,
mlir::Type newTy )
inline

Definition at line 726 of file CIRBaseBuilder.h.

Referenced by createBuiltinIntCast().

◆ createBuiltinIntCast() [2/2]

mlir::Value cir::CIRBaseBuilderTy::createBuiltinIntCast ( mlir::Value src,
mlir::Type newTy )
inline

Definition at line 731 of file CIRBaseBuilder.h.

References createBuiltinIntCast().

◆ createCallOp() [1/3]

cir::CallOp cir::CIRBaseBuilderTy::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 )
inline

Definition at line 661 of file CIRBaseBuilder.h.

◆ createCallOp() [2/3]

cir::CallOp cir::CIRBaseBuilderTy::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 )
inline

◆ createCallOp() [3/3]

cir::CallOp cir::CIRBaseBuilderTy::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 = {} )
inline

Definition at line 686 of file CIRBaseBuilder.h.

◆ createCast() [1/2]

mlir::Value cir::CIRBaseBuilderTy::createCast ( cir::CastKind kind,
mlir::Value src,
mlir::Type newTy )
inline

Definition at line 706 of file CIRBaseBuilder.h.

References createCast(), and kind.

◆ createCast() [2/2]

◆ createCompare()

◆ createComplexAdd()

mlir::Value cir::CIRBaseBuilderTy::createComplexAdd ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 345 of file CIRBaseBuilder.h.

References getConstrainedFPAttr().

◆ createComplexConj()

mlir::Value cir::CIRBaseBuilderTy::createComplexConj ( mlir::Location loc,
mlir::Value operand )
inline

Definition at line 383 of file CIRBaseBuilder.h.

◆ createComplexCreate()

mlir::Value cir::CIRBaseBuilderTy::createComplexCreate ( mlir::Location loc,
mlir::Value real,
mlir::Value imag )
inline

◆ createComplexDiv()

mlir::Value cir::CIRBaseBuilderTy::createComplexDiv ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs,
cir::ComplexRangeKind rangeKind )
inline

Definition at line 374 of file CIRBaseBuilder.h.

◆ createComplexImag()

mlir::Value cir::CIRBaseBuilderTy::createComplexImag ( mlir::Location loc,
mlir::Value operand )
inline

◆ createComplexMul()

mlir::Value cir::CIRBaseBuilderTy::createComplexMul ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs,
cir::ComplexRangeKind rangeKind )
inline

Definition at line 365 of file CIRBaseBuilder.h.

◆ createComplexReal()

mlir::Value cir::CIRBaseBuilderTy::createComplexReal ( mlir::Location loc,
mlir::Value operand )
inline

◆ createComplexSub()

mlir::Value cir::CIRBaseBuilderTy::createComplexSub ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 355 of file CIRBaseBuilder.h.

References getConstrainedFPAttr().

◆ createCondition()

cir::ConditionOp cir::CIRBaseBuilderTy::createCondition ( mlir::Value condition)
inline

Create a loop condition.

Definition at line 1109 of file CIRBaseBuilder.h.

References condition.

Referenced by lowerArrayDtorCtorIntoLoop().

◆ createContinue()

cir::ContinueOp cir::CIRBaseBuilderTy::createContinue ( mlir::Location loc)
inline

Create a continue operation.

Definition at line 467 of file CIRBaseBuilder.h.

◆ createCopy()

cir::CopyOp cir::CIRBaseBuilderTy::createCopy ( mlir::Value dst,
mlir::Value src,
bool isVolatile = false,
bool skipTailPadding = false )
inline

Create a copy with inferred length.

Definition at line 560 of file CIRBaseBuilder.h.

◆ createDec()

mlir::Value cir::CIRBaseBuilderTy::createDec ( mlir::Location loc,
mlir::Value input,
bool nsw = false )
inline

Definition at line 476 of file CIRBaseBuilder.h.

◆ createDiv()

mlir::Value cir::CIRBaseBuilderTy::createDiv ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 900 of file CIRBaseBuilder.h.

Referenced by buildAlgebraicComplexDiv().

◆ createDoWhile()

cir::DoWhileOp cir::CIRBaseBuilderTy::createDoWhile ( mlir::Location loc,
llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> condBuilder,
llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> bodyBuilder )
inline

Create a do-while operation.

Definition at line 411 of file CIRBaseBuilder.h.

Referenced by lowerArrayDtorCtorIntoLoop().

◆ createDummyValue()

mlir::Value cir::CIRBaseBuilderTy::createDummyValue ( mlir::Location loc,
mlir::Type type,
clang::CharUnits alignment )
inline

Definition at line 610 of file CIRBaseBuilder.h.

References createAlloca(), getAlignmentAttr(), and getPointerTo().

◆ createExtractElement()

mlir::Value cir::CIRBaseBuilderTy::createExtractElement ( mlir::Location loc,
mlir::Value vec,
uint64_t idx )
inline

Definition at line 790 of file CIRBaseBuilder.h.

References getConstAPInt(), and getUIntNTy().

Referenced by emitX86Round(), and getMaskZeroBitAsBool().

◆ createFAdd()

mlir::Value cir::CIRBaseBuilderTy::createFAdd ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

◆ createFDiv()

mlir::Value cir::CIRBaseBuilderTy::createFDiv ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 928 of file CIRBaseBuilder.h.

References createFPBinOp().

Referenced by buildAlgebraicComplexDiv(), and buildRangeReductionComplexDiv().

◆ createFlagLoad()

cir::LoadOp cir::CIRBaseBuilderTy::createFlagLoad ( mlir::Location loc,
mlir::Value addr )
inline

Emit a load from an boolean flag variable.

Definition at line 581 of file CIRBaseBuilder.h.

References createLoad(), createPtrBitcast(), and getBoolTy().

Referenced by emitCleanupBody().

◆ createFlagStore()

cir::StoreOp cir::CIRBaseBuilderTy::createFlagStore ( mlir::Location loc,
bool val,
mlir::Value dst )
inline

Definition at line 588 of file CIRBaseBuilder.h.

References createStore(), and getBool().

Referenced by setupCleanupBlockDeactivation().

◆ createFMul()

mlir::Value cir::CIRBaseBuilderTy::createFMul ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

◆ createFNeg()

mlir::Value cir::CIRBaseBuilderTy::createFNeg ( mlir::Location loc,
mlir::Value operand )
inline

◆ createFor() [1/2]

cir::ForOp cir::CIRBaseBuilderTy::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 )
inline

Create a for operation.

Definition at line 439 of file CIRBaseBuilder.h.

◆ createFor() [2/2]

cir::ForOp cir::CIRBaseBuilderTy::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 )
inline

Create a for operation with a per-iteration cleanup region.

Definition at line 449 of file CIRBaseBuilder.h.

◆ createFPBinOp()

template<typename OpTy>
mlir::Value cir::CIRBaseBuilderTy::createFPBinOp ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

◆ createFRem()

mlir::Value cir::CIRBaseBuilderTy::createFRem ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 932 of file CIRBaseBuilder.h.

References createFPBinOp().

◆ createFSub()

mlir::Value cir::CIRBaseBuilderTy::createFSub ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

◆ createGetGlobal() [1/2]

cir::GetGlobalOp cir::CIRBaseBuilderTy::createGetGlobal ( cir::GlobalOp global,
bool threadLocal = false )
inline

Definition at line 554 of file CIRBaseBuilder.h.

References createGetGlobal().

◆ createGetGlobal() [2/2]

cir::GetGlobalOp cir::CIRBaseBuilderTy::createGetGlobal ( mlir::Location loc,
cir::GlobalOp global,
bool threadLocal = false )
inline

◆ createGetMember()

cir::GetMemberOp cir::CIRBaseBuilderTy::createGetMember ( mlir::Location loc,
mlir::Type resultTy,
mlir::Value base,
llvm::StringRef name,
unsigned index )
inline

Definition at line 604 of file CIRBaseBuilder.h.

◆ createGetMethod()

GetMethodResults cir::CIRBaseBuilderTy::createGetMethod ( mlir::Location loc,
mlir::Value method,
mlir::Value objectPtr )
inline

◆ createGlobal()

cir::GlobalOp cir::CIRBaseBuilderTy::createGlobal ( mlir::ModuleOp mlirModule,
mlir::Location loc,
mlir::StringRef name,
mlir::Type type,
bool isConstant,
cir::GlobalLinkageKind linkage,
mlir::ptr::MemorySpaceAttrInterface addrSpace )
inlinenodiscard

Definition at line 594 of file CIRBaseBuilder.h.

◆ createInc()

mlir::Value cir::CIRBaseBuilderTy::createInc ( mlir::Location loc,
mlir::Value input,
bool nsw = false )
inline

Definition at line 471 of file CIRBaseBuilder.h.

◆ createIndirectCallOp()

cir::CallOp cir::CIRBaseBuilderTy::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 )
inline

Definition at line 673 of file CIRBaseBuilder.h.

Referenced by emitCallLikeOp().

◆ createInsertElement()

mlir::Value cir::CIRBaseBuilderTy::createInsertElement ( mlir::Location loc,
mlir::Value vec,
mlir::Value newElt,
uint64_t idx )
inline

Definition at line 797 of file CIRBaseBuilder.h.

References getConstAPInt(), and getUIntNTy().

Referenced by emitX86Round().

◆ createIntCast()

◆ createIntToPtr()

mlir::Value cir::CIRBaseBuilderTy::createIntToPtr ( mlir::Value src,
mlir::Type newTy )
inline

Definition at line 735 of file CIRBaseBuilder.h.

References createCast().

Referenced by emitAsmStores(), emitFromInt(), and emitPointerArithmetic().

◆ createIsNaN()

mlir::Value cir::CIRBaseBuilderTy::createIsNaN ( mlir::Location loc,
mlir::Value operand )
inline

Definition at line 1002 of file CIRBaseBuilder.h.

References createCompare().

Referenced by lowerComplexFMul().

◆ createLoad()

cir::LoadOp cir::CIRBaseBuilderTy::createLoad ( mlir::Location loc,
mlir::Value ptr,
bool isVolatile = false,
uint64_t alignment = 0,
bool isNontemporal = false )
inline

Definition at line 387 of file CIRBaseBuilder.h.

References getAlignmentAttr().

Referenced by createAlignedLoad(), and createFlagLoad().

◆ createLogicalAnd()

mlir::Value cir::CIRBaseBuilderTy::createLogicalAnd ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 836 of file CIRBaseBuilder.h.

References createSelect(), and getBool().

Referenced by lowerComplexFMul().

◆ createLogicalOr()

mlir::Value cir::CIRBaseBuilderTy::createLogicalOr ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 841 of file CIRBaseBuilder.h.

References createSelect(), and getBool().

Referenced by lowerComplexToScalarCast().

◆ createLowBitsSet()

mlir::Value cir::CIRBaseBuilderTy::createLowBitsSet ( mlir::Location loc,
unsigned size,
unsigned bits )
inline

Definition at line 813 of file CIRBaseBuilder.h.

References getConstAPInt().

◆ createMax()

mlir::Value cir::CIRBaseBuilderTy::createMax ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 950 of file CIRBaseBuilder.h.

◆ createMin()

mlir::Value cir::CIRBaseBuilderTy::createMin ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 954 of file CIRBaseBuilder.h.

◆ createMinus()

mlir::Value cir::CIRBaseBuilderTy::createMinus ( mlir::Location loc,
mlir::Value input,
bool nsw = false )
inline

Definition at line 481 of file CIRBaseBuilder.h.

Referenced by clang::CIRGen::CIRGenBuilderTy::createNeg().

◆ createMul()

mlir::Value cir::CIRBaseBuilderTy::createMul ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs,
OverflowBehavior ob = OverflowBehavior::None )
inline

◆ createNot() [1/2]

mlir::Value cir::CIRBaseBuilderTy::createNot ( mlir::Location loc,
mlir::Value value )
inline

◆ createNot() [2/2]

mlir::Value cir::CIRBaseBuilderTy::createNot ( mlir::Value value)
inline

Definition at line 406 of file CIRBaseBuilder.h.

References createNot().

◆ createNSWAdd()

mlir::Value cir::CIRBaseBuilderTy::createNSWAdd ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 890 of file CIRBaseBuilder.h.

References createAdd(), and cir::NoSignedWrap.

Referenced by emitLogbBuiltin().

◆ createNSWMul()

mlir::Value cir::CIRBaseBuilderTy::createNSWMul ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 853 of file CIRBaseBuilder.h.

References createMul(), and cir::NoSignedWrap.

◆ createNSWSub()

mlir::Value cir::CIRBaseBuilderTy::createNSWSub ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 871 of file CIRBaseBuilder.h.

References createSub(), and cir::NoSignedWrap.

◆ createNUWAdd()

mlir::Value cir::CIRBaseBuilderTy::createNUWAdd ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 895 of file CIRBaseBuilder.h.

References createAdd(), and cir::NoUnsignedWrap.

◆ createNUWAMul()

mlir::Value cir::CIRBaseBuilderTy::createNUWAMul ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 857 of file CIRBaseBuilder.h.

References createMul(), and cir::NoUnsignedWrap.

Referenced by genVscaleTimesFactor().

◆ createNUWSub()

mlir::Value cir::CIRBaseBuilderTy::createNUWSub ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 876 of file CIRBaseBuilder.h.

References createSub(), and cir::NoUnsignedWrap.

◆ createOr()

mlir::Value cir::CIRBaseBuilderTy::createOr ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 824 of file CIRBaseBuilder.h.

Referenced by emitCXXNewAllocSize().

◆ createPtrBitcast()

mlir::Value cir::CIRBaseBuilderTy::createPtrBitcast ( mlir::Value src,
mlir::Type newPointeeTy )
inline

◆ createPtrIsNotNull()

mlir::Value cir::CIRBaseBuilderTy::createPtrIsNotNull ( mlir::Value ptr)
inline

Definition at line 772 of file CIRBaseBuilder.h.

References createCompare(), and getNullPtr().

Referenced by performReturnAdjustment().

◆ createPtrIsNull()

mlir::Value cir::CIRBaseBuilderTy::createPtrIsNull ( mlir::Value ptr)
inline

Definition at line 767 of file CIRBaseBuilder.h.

References createCompare(), and getNullPtr().

Referenced by emitCXXTypeidOperand().

◆ createPtrStride()

cir::PtrStrideOp cir::CIRBaseBuilderTy::createPtrStride ( mlir::Location loc,
mlir::Value base,
mlir::Value stride )
inline

◆ createPtrToBoolCast()

mlir::Value cir::CIRBaseBuilderTy::createPtrToBoolCast ( mlir::Value v)
inline

Definition at line 743 of file CIRBaseBuilder.h.

References createCast(), and getBoolTy().

◆ createPtrToInt()

mlir::Value cir::CIRBaseBuilderTy::createPtrToInt ( mlir::Value src,
mlir::Type newTy )
inline

Definition at line 739 of file CIRBaseBuilder.h.

References createCast().

Referenced by emitAsmStores(), and emitToInt().

◆ createRem()

mlir::Value cir::CIRBaseBuilderTy::createRem ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 904 of file CIRBaseBuilder.h.

◆ createSelect()

mlir::Value cir::CIRBaseBuilderTy::createSelect ( mlir::Location loc,
mlir::Value condition,
mlir::Value trueValue,
mlir::Value falseValue )
inline

◆ createShift() [1/3]

mlir::Value cir::CIRBaseBuilderTy::createShift ( mlir::Location loc,
mlir::Value lhs,
const llvm::APInt & rhs,
bool isShiftLeft )
inline

Definition at line 1012 of file CIRBaseBuilder.h.

References createShift(), and getConstAPInt().

◆ createShift() [2/3]

mlir::Value cir::CIRBaseBuilderTy::createShift ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs,
bool isShiftLeft )
inline

◆ createShift() [3/3]

mlir::Value cir::CIRBaseBuilderTy::createShift ( mlir::Location loc,
mlir::Value lhs,
unsigned bits,
bool isShiftLeft )
inline

Definition at line 1018 of file CIRBaseBuilder.h.

References createShift().

◆ createShiftLeft() [1/2]

mlir::Value cir::CIRBaseBuilderTy::createShiftLeft ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 1035 of file CIRBaseBuilder.h.

References createShift().

◆ createShiftLeft() [2/2]

mlir::Value cir::CIRBaseBuilderTy::createShiftLeft ( mlir::Location loc,
mlir::Value lhs,
unsigned bits )
inline

Definition at line 1025 of file CIRBaseBuilder.h.

References createShift().

Referenced by emitStdcBitCeil(), and emitStdcBitFloor().

◆ createShiftRight() [1/2]

mlir::Value cir::CIRBaseBuilderTy::createShiftRight ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 1040 of file CIRBaseBuilder.h.

References createShift().

◆ createShiftRight() [2/2]

mlir::Value cir::CIRBaseBuilderTy::createShiftRight ( mlir::Location loc,
mlir::Value lhs,
unsigned bits )
inline

Definition at line 1030 of file CIRBaseBuilder.h.

References createShift().

Referenced by emitCommonNeonBuiltinExpr().

◆ createSignBit()

cir::SignBitOp cir::CIRBaseBuilderTy::createSignBit ( mlir::Location loc,
mlir::Value val )
inline

Definition at line 804 of file CIRBaseBuilder.h.

Referenced by emitSignBit().

◆ createStore()

cir::StoreOp cir::CIRBaseBuilderTy::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 = {} )
inline

Definition at line 568 of file CIRBaseBuilder.h.

Referenced by createFlagStore(), and lowerArrayDtorCtorIntoLoop().

◆ createSub()

mlir::Value cir::CIRBaseBuilderTy::createSub ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs,
OverflowBehavior ob = OverflowBehavior::None )
inline

◆ createVecCompare() [1/2]

cir::VecCmpOp cir::CIRBaseBuilderTy::createVecCompare ( mlir::Location loc,
cir::CmpOpKind kind,
mlir::Value lhs,
mlir::Value rhs )
inline

Compares lhs and rhs element-wise.

Each result element is a signed integer of the operand element's bit width. That is not the result an FP80 element needs, so an FP80 compare names its result type with the overload below.

Definition at line 970 of file CIRBaseBuilder.h.

References createVecCompare(), getCIRIntOrFloatBitWidth(), getSIntNTy(), and kind.

Referenced by createVecCompare(), emitAArch64CompareBuiltinExpr(), emitVectorFCmp(), and emitX86vpcom().

◆ createVecCompare() [2/2]

cir::VecCmpOp cir::CIRBaseBuilderTy::createVecCompare ( mlir::Location loc,
VectorType resultTy,
cir::CmpOpKind kind,
mlir::Value lhs,
mlir::Value rhs )
inline

Compares lhs and rhs element-wise, producing resultTy, which must be a vector of integers or bools with as many elements as lhs.

The result element width can then differ from the operand element's bit width, as for FP80, whose result elements are 128 bits.

Definition at line 988 of file CIRBaseBuilder.h.

References getConstrainedFPAttr(), and kind.

◆ createWhile() [1/2]

cir::WhileOp cir::CIRBaseBuilderTy::createWhile ( mlir::Location loc,
llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> condBuilder,
llvm::function_ref< void(mlir::OpBuilder &, mlir::Location)> bodyBuilder )
inline

Create a while operation.

Definition at line 419 of file CIRBaseBuilder.h.

◆ createWhile() [2/2]

cir::WhileOp cir::CIRBaseBuilderTy::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 )
inline

Create a while operation with a per-iteration cleanup region.

Definition at line 427 of file CIRBaseBuilder.h.

◆ createXor()

mlir::Value cir::CIRBaseBuilderTy::createXor ( mlir::Location loc,
mlir::Value lhs,
mlir::Value rhs )
inline

Definition at line 946 of file CIRBaseBuilder.h.

Referenced by emitCommonNeonBuiltinExpr().

◆ createYield()

◆ getAlignment()

cir::ConstantOp cir::CIRBaseBuilderTy::getAlignment ( mlir::Location loc,
mlir::Type t,
clang::CharUnits alignment )
inline

Definition at line 1093 of file CIRBaseBuilder.h.

References getConstantInt(), and clang::CharUnits::getQuantity().

◆ getAlignmentAttr() [1/3]

◆ getAlignmentAttr() [2/3]

mlir::IntegerAttr cir::CIRBaseBuilderTy::getAlignmentAttr ( int64_t alignment)
inline

Definition at line 1087 of file CIRBaseBuilder.h.

◆ getAlignmentAttr() [3/3]

mlir::IntegerAttr cir::CIRBaseBuilderTy::getAlignmentAttr ( llvm::Align alignment)
inline

Definition at line 1083 of file CIRBaseBuilder.h.

References getAlignmentAttr().

◆ getBestAllocaInsertPoint()

OpBuilder::InsertPoint cir::CIRBaseBuilderTy::getBestAllocaInsertPoint ( mlir::Block * block)
inlinestatic

Definition at line 1059 of file CIRBaseBuilder.h.

Referenced by createReferenceTemporary(), and hoistAllocaOutOfCleanupScope().

◆ getBool()

cir::ConstantOp cir::CIRBaseBuilderTy::getBool ( bool state,
mlir::Location loc )
inline

◆ getBoolTy()

◆ getCIRBoolAttr()

cir::BoolAttr cir::CIRBaseBuilderTy::getCIRBoolAttr ( bool state)
inline

◆ getCIRIntOrFloatBitWidth()

unsigned cir::CIRBaseBuilderTy::getCIRIntOrFloatBitWidth ( mlir::Type eltTy)
inlinestatic

Definition at line 167 of file CIRBaseBuilder.h.

Referenced by createVecCompare().

◆ getConstant()

◆ getConstantInt()

◆ getConstAPInt()

mlir::Value cir::CIRBaseBuilderTy::getConstAPInt ( mlir::Location loc,
mlir::Type typ,
const llvm::APInt & val )
inline

◆ getConstNullPtrAttr()

mlir::TypedAttr cir::CIRBaseBuilderTy::getConstNullPtrAttr ( mlir::Type t)
inline

Definition at line 110 of file CIRBaseBuilder.h.

References getConstPtrAttr().

Referenced by getZeroInitAttr().

◆ getConstPtrAttr()

mlir::TypedAttr cir::CIRBaseBuilderTy::getConstPtrAttr ( mlir::Type type,
int64_t value )
inline

Definition at line 486 of file CIRBaseBuilder.h.

Referenced by getConstNullPtrAttr(), and getNullPtr().

◆ getConstrainedFPAttr()

cir::FenvAttr cir::CIRBaseBuilderTy::getConstrainedFPAttr ( )
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 273 of file CIRBaseBuilder.h.

References defaultConstrainedExcept, defaultConstrainedRounding, clang::LangOptionsBase::FPE_Ignore, clang::LangOptionsBase::FPE_MayTrap, clang::LangOptionsBase::FPE_Strict, and isFPConstrained.

Referenced by createCompare(), createComplexAdd(), createComplexSub(), clang::CIRGen::CIRGenBuilderTy::createFloatingCast(), createFPBinOp(), createVecCompare(), emitBinaryMaybeConstrainedFPBuiltin(), emitNeonCallToOp(), emitTernaryMaybeConstrainedFPBuiltin(), emitUnaryMaybeConstrainedFPBuiltin(), emitUnaryMaybeConstrainedFPToIntBuiltin(), and emitX86Round().

◆ getDefaultConstrainedExcept()

clang::LangOptions::FPExceptionModeKind cir::CIRBaseBuilderTy::getDefaultConstrainedExcept ( ) const
inline

Get the exception handling used with constrained floating point.

Definition at line 241 of file CIRBaseBuilder.h.

References defaultConstrainedExcept.

◆ getDefaultConstrainedRounding()

llvm::RoundingMode cir::CIRBaseBuilderTy::getDefaultConstrainedRounding ( ) const
inline

Get the rounding mode handling used with constrained floating point.

Definition at line 251 of file CIRBaseBuilder.h.

References defaultConstrainedRounding.

◆ getFalse()

cir::ConstantOp cir::CIRBaseBuilderTy::getFalse ( mlir::Location loc)
inline

Definition at line 157 of file CIRBaseBuilder.h.

References getBool().

◆ getFalseAttr()

cir::BoolAttr cir::CIRBaseBuilderTy::getFalseAttr ( )
inline

Definition at line 219 of file CIRBaseBuilder.h.

References getCIRBoolAttr().

Referenced by getZeroInitAttr().

◆ getFastMathFlags()

cir::FastMathFlags cir::CIRBaseBuilderTy::getFastMathFlags ( ) const
inline

Get the fast-math flags attached to floating-point operations.

Definition at line 259 of file CIRBaseBuilder.h.

References fastMathFlags.

◆ getFastMathFlagsAttr()

cir::FastMathFlagsAttr cir::CIRBaseBuilderTy::getFastMathFlagsAttr ( )
inline

Returns a null attribute when no fast-math flags are set.

Definition at line 262 of file CIRBaseBuilder.h.

References fastMathFlags.

Referenced by createFPBinOp().

◆ getGlobalViewAttr() [1/3]

cir::GlobalViewAttr cir::CIRBaseBuilderTy::getGlobalViewAttr ( cir::GlobalOp globalOp,
mlir::ArrayAttr indices = {} )
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 518 of file CIRBaseBuilder.h.

Referenced by createNewGlobalView(), clang::CIRGen::CIRGenVTables::emitVTTDefinition(), getGlobalViewAttr(), and tryEmitGlobalCompoundLiteral().

◆ getGlobalViewAttr() [2/3]

cir::GlobalViewAttr cir::CIRBaseBuilderTy::getGlobalViewAttr ( cir::PointerType type,
cir::GlobalOp globalOp,
llvm::ArrayRef< int64_t > indices,
bool addressPoint = false )
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 535 of file CIRBaseBuilder.h.

References getGlobalViewAttr().

◆ getGlobalViewAttr() [3/3]

cir::GlobalViewAttr cir::CIRBaseBuilderTy::getGlobalViewAttr ( cir::PointerType type,
cir::GlobalOp globalOp,
mlir::ArrayAttr indices = {},
bool addressPoint = false )
inline

Get constant address of a global variable as an MLIR attribute.

Definition at line 525 of file CIRBaseBuilder.h.

◆ getIsFPConstrained()

bool cir::CIRBaseBuilderTy::getIsFPConstrained ( ) const
inline

Query for the use of constrained floating point math.

Definition at line 232 of file CIRBaseBuilder.h.

References isFPConstrained.

Referenced by emitBinaryExpMaybeConstrainedFPBuiltin(), and emitX86Round().

◆ getMethodAttr()

cir::MethodAttr cir::CIRBaseBuilderTy::getMethodAttr ( cir::MethodType ty,
cir::FuncOp methodFuncOp )
inline

Definition at line 205 of file CIRBaseBuilder.h.

◆ getNullDataMemberAttr()

mlir::TypedAttr cir::CIRBaseBuilderTy::getNullDataMemberAttr ( cir::DataMemberType ty)
inline

Definition at line 115 of file CIRBaseBuilder.h.

Referenced by getZeroInitAttr().

◆ getNullMethodAttr()

cir::MethodAttr cir::CIRBaseBuilderTy::getNullMethodAttr ( cir::MethodType ty)
inline

Definition at line 210 of file CIRBaseBuilder.h.

Referenced by getZeroInitAttr().

◆ getNullPtr()

◆ getNullValue()

◆ getPointerTo() [1/3]

◆ getPointerTo() [2/3]

cir::PointerType cir::CIRBaseBuilderTy::getPointerTo ( mlir::Type ty,
clang::LangAS langAS )
inline

Definition at line 188 of file CIRBaseBuilder.h.

References clang::Default, getPointerTo(), and cir::toCIRAddressSpaceAttr().

◆ getPointerTo() [3/3]

cir::PointerType cir::CIRBaseBuilderTy::getPointerTo ( mlir::Type ty,
mlir::ptr::MemorySpaceAttrInterface as )
inline

Definition at line 183 of file CIRBaseBuilder.h.

◆ getSignedInt()

mlir::Value cir::CIRBaseBuilderTy::getSignedInt ( mlir::Location loc,
int64_t val,
unsigned numBits )
inline

Definition at line 93 of file CIRBaseBuilder.h.

References getConstAPInt().

Referenced by lowerArrayDtorCtorIntoLoop().

◆ getSIntNTy()

cir::IntType cir::CIRBaseBuilderTy::getSIntNTy ( int n)
inline

Definition at line 175 of file CIRBaseBuilder.h.

Referenced by createVecCompare(), and cir::CIRCXXABI::readArrayCookie().

◆ getSizeFromCharUnits()

mlir::IntegerAttr cir::CIRBaseBuilderTy::getSizeFromCharUnits ( clang::CharUnits size)
inline

Definition at line 1098 of file CIRBaseBuilder.h.

References clang::CharUnits::getQuantity().

◆ getTrue()

cir::ConstantOp cir::CIRBaseBuilderTy::getTrue ( mlir::Location loc)
inline

Definition at line 158 of file CIRBaseBuilder.h.

References getBool().

◆ getTrueAttr()

cir::BoolAttr cir::CIRBaseBuilderTy::getTrueAttr ( )
inline

Definition at line 218 of file CIRBaseBuilder.h.

References getCIRBoolAttr().

◆ getUIntNTy()

cir::IntType cir::CIRBaseBuilderTy::getUIntNTy ( int n)
inline

◆ getUnsignedInt()

mlir::Value cir::CIRBaseBuilderTy::getUnsignedInt ( mlir::Location loc,
uint64_t val,
unsigned numBits )
inline

Definition at line 99 of file CIRBaseBuilder.h.

References getConstAPInt().

Referenced by lowerArrayDtorCtorIntoLoop().

◆ getVoidFnPtrTy()

cir::PointerType cir::CIRBaseBuilderTy::getVoidFnPtrTy ( mlir::TypeRange argTypes = {})
inline

Returns void (*)(T...) as a cir::PointerType.

Definition at line 1051 of file CIRBaseBuilder.h.

◆ getVoidFnTy()

cir::FuncType cir::CIRBaseBuilderTy::getVoidFnTy ( mlir::TypeRange argTypes = {})
inline

Returns void (T...) as a cir::FuncType.

Definition at line 1046 of file CIRBaseBuilder.h.

◆ getVoidPtrTy() [1/2]

◆ getVoidPtrTy() [2/2]

cir::PointerType cir::CIRBaseBuilderTy::getVoidPtrTy ( mlir::ptr::MemorySpaceAttrInterface as)
inline

Definition at line 201 of file CIRBaseBuilder.h.

References getPointerTo().

◆ getVoidTy()

cir::VoidType cir::CIRBaseBuilderTy::getVoidTy ( )
inline

Definition at line 161 of file CIRBaseBuilder.h.

◆ getZeroInitAttr()

◆ setDefaultConstrainedExcept()

void cir::CIRBaseBuilderTy::setDefaultConstrainedExcept ( clang::LangOptions::FPExceptionModeKind newExcept)
inline

Set the exception handling to be used with constrained floating point.

Definition at line 235 of file CIRBaseBuilder.h.

References defaultConstrainedExcept.

Referenced by emitX86Round().

◆ setDefaultConstrainedRounding()

void cir::CIRBaseBuilderTy::setDefaultConstrainedRounding ( llvm::RoundingMode newRounding)
inline

Set the rounding mode handling to be used with constrained floating point.

Definition at line 246 of file CIRBaseBuilder.h.

References defaultConstrainedRounding.

◆ setFastMathFlags()

void cir::CIRBaseBuilderTy::setFastMathFlags ( cir::FastMathFlags flags)
inline

Set the fast-math flags attached to floating-point operations.

Definition at line 256 of file CIRBaseBuilder.h.

References fastMathFlags.

◆ setIsFPConstrained()

void cir::CIRBaseBuilderTy::setIsFPConstrained ( bool isCon)
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 229 of file CIRBaseBuilder.h.

References isFPConstrained.

Member Data Documentation

◆ defaultConstrainedExcept

clang::LangOptions::FPExceptionModeKind cir::CIRBaseBuilderTy::defaultConstrainedExcept
Initial value:
=
@ FPE_Ignore
Assume that floating-point exceptions are masked.

Definition at line 73 of file CIRBaseBuilder.h.

Referenced by getConstrainedFPAttr(), getDefaultConstrainedExcept(), and setDefaultConstrainedExcept().

◆ defaultConstrainedRounding

llvm::RoundingMode cir::CIRBaseBuilderTy::defaultConstrainedRounding
Initial value:
=
llvm::RoundingMode::NearestTiesToEven

Definition at line 75 of file CIRBaseBuilder.h.

Referenced by getConstrainedFPAttr(), getDefaultConstrainedRounding(), and setDefaultConstrainedRounding().

◆ fastMathFlags

cir::FastMathFlags cir::CIRBaseBuilderTy::fastMathFlags = cir::FastMathFlags::none

Definition at line 77 of file CIRBaseBuilder.h.

Referenced by getFastMathFlags(), getFastMathFlagsAttr(), and setFastMathFlags().

◆ isFPConstrained

bool cir::CIRBaseBuilderTy::isFPConstrained = false

Definition at line 72 of file CIRBaseBuilder.h.

Referenced by getConstrainedFPAttr(), getIsFPConstrained(), and setIsFPConstrained().


The documentation for this class was generated from the following file: