clang 24.0.0git
CIRDialect.cpp File Reference
#include "clang/CIR/Dialect/IR/CIRDialect.h"
#include "clang/CIR/Dialect/IR/CIRAttrs.h"
#include "clang/CIR/Dialect/IR/CIROpsEnums.h"
#include "clang/CIR/Dialect/IR/CIRTypes.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/DialectImplementation.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/Value.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/Interfaces/FunctionImplementation.h"
#include "mlir/Support/LLVM.h"
#include "clang/CIR/Dialect/IR/CIROpsDialect.cpp.inc"
#include "clang/CIR/Dialect/IR/CIROpsEnums.cpp.inc"
#include "clang/CIR/MissingFeatures.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/LogicalResult.h"
#include "clang/CIR/Dialect/IR/CIROps.cpp.inc"

Go to the source code of this file.

Macros

#define GET_OP_LIST
#define REGISTER_ENUM_TYPE(Ty)
#define GET_OP_CLASSES

Functions

static bool isOpenCLVersionAttrName (StringRef attrName)
static LogicalResult verifyOpenCLVersionAttrPlacement (Operation *op, NamedAttribute attr)
static bool areOpenCLVersionsCompatible (cir::OpenCLVersionAttr openCLVersion, cir::OpenCLVersionAttr cxxVersion)
static LogicalResult verifyOpenCLCXXVersion (ModuleOp module, cir::OpenCLVersionAttr cxxVersion)
static LogicalResult verifyOpenCLVersionAttr (Operation *op, NamedAttribute attr)
static LogicalResult verifyOffloadKind (mlir::ModuleOp module, cir::OffloadKind expected)
static LogicalResult verifyOffloadContainer (mlir::Operation *op)
static int parseOptionalKeywordAlternative (AsmParser &parser, ArrayRef< llvm::StringRef > keywords)
template<typename EnumTy, typename RetTy = EnumTy>
static RetTy parseOptionalCIRKeyword (AsmParser &parser, EnumTy defaultValue)
 Parse an enum from the keyword, or default to the provided default value.
template<typename EnumTy, typename RetTy = EnumTy>
static ParseResult parseCIRKeyword (AsmParser &parser, RetTy &result)
 Parse an enum from the keyword, return failure if the keyword is not found.
static LogicalResult ensureRegionTerm (OpAsmParser &parser, Region &region, SMLoc errLoc)
static bool omitRegionTerm (mlir::Region &r)
template<typename ExpectedProducerOp>
static LogicalResult verifyProducedBy (Operation *op, Value operand, StringRef operandName)
ParseResult parseInlineKindAttr (OpAsmParser &parser, cir::InlineKindAttr &inlineKindAttr)
void printInlineKindAttr (OpAsmPrinter &p, cir::InlineKindAttr inlineKindAttr)
static mlir::ParseResult parseOmittedTerminatorRegion (mlir::OpAsmParser &parser, mlir::Region &region)
static void printOmittedTerminatorRegion (mlir::OpAsmPrinter &printer, cir::ScopeOp &op, mlir::Region &region)
mlir::OptionalParseResult parseGlobalMemorySpace (mlir::AsmParser &p, mlir::ptr::MemorySpaceAttrInterface &attr)
void printGlobalMemorySpace (mlir::AsmPrinter &printer, cir::GlobalOp op, mlir::ptr::MemorySpaceAttrInterface attr)
template<typename Op>
static LogicalResult verifyArrayCtorDtor (Op op)
static void printAssumeBundle (OpAsmPrinter &p, cir::AssumeOp op, cir::AssumeBundleKindAttr kindAttr, OperandRange bundleArgs, TypeRange bundleArgTypes)
static ParseResult parseAssumeBundle (OpAsmParser &p, cir::AssumeBundleKindAttr &bundleKindAttr, llvm::SmallVector< mlir::OpAsmParser::UnresolvedOperand, 4 > &bundleArgs, llvm::SmallVector< mlir::Type, 1 > &bundleArgTypes)
template<typename LoopOpTy>
static LogicalResult verifyLoopCleanup (LoopOpTy op)
static LogicalResult checkConstantTypes (mlir::Operation *op, mlir::Type opType, mlir::Attribute attrType)
static bool isFloatingPointCastKind (cir::CastKind kind)
static bool isIntOrBoolCast (cir::CastOp op)
static bool isCirFunctionPointerType (mlir::Type ty)
static Value tryFoldCastChain (cir::CastOp op)
static mlir::ParseResult parseTryCallDestinations (mlir::OpAsmParser &parser, mlir::OperationState &result)
static ParseResult checkEffectAttrKinds (mlir::OpAsmParser &parser, llvm::SMLoc loc, const mlir::NamedAttrList &attrs)
 Reject an effect attribute of the wrong kind in an explicit attribute dictionary.
static mlir::ParseResult parseCallCommon (mlir::OpAsmParser &parser, mlir::OperationState &result, bool hasDestinationBlocks=false)
static void printCallCommon (mlir::Operation *op, mlir::FlatSymbolRefAttr calleeSym, mlir::Value indirectCallee, mlir::OpAsmPrinter &printer, bool isNothrow, ArrayAttr argAttrs, ArrayAttr resAttrs, mlir::Block *normalDest=nullptr, mlir::Block *unwindDest=nullptr)
static LogicalResult verifyCallCommInSymbolUses (mlir::Operation *op, SymbolTableCollection &symbolTable)
static mlir::LogicalResult checkReturnAndFunction (cir::ReturnOp op, cir::FuncOp function)
static bool isRedundantBeforeReturn (mlir::Region &cleanupRegion)
ParseResult parseIndirectBrOpSucessors (OpAsmParser &parser, Type &flagType, SmallVectorImpl< Block * > &succOperandBlocks, SmallVectorImpl< SmallVector< OpAsmParser::UnresolvedOperand > > &succOperands, SmallVectorImpl< SmallVector< Type > > &succOperandsTypes)
void printIndirectBrOpSucessors (OpAsmPrinter &p, cir::IndirectBrOp op, Type flagType, SuccessorRange succs, OperandRangeRange succOperands, const TypeRangeRange &succOperandsTypes)
static ParseResult parseSwitchFlatOpCases (OpAsmParser &parser, Type flagType, mlir::ArrayAttr &caseValues, SmallVectorImpl< Block * > &caseDestinations, SmallVectorImpl< llvm::SmallVector< OpAsmParser::UnresolvedOperand > > &caseOperands, SmallVectorImpl< llvm::SmallVector< Type > > &caseOperandTypes)
 <cases> ::= [ (case (, case )* )?
static void printSwitchFlatOpCases (OpAsmPrinter &p, cir::SwitchFlatOp op, Type flagType, mlir::ArrayAttr caseValues, SuccessorRange caseDestinations, OperandRangeRange caseOperands, const TypeRangeRange &caseOperandTypes)
static ParseResult parseConstantValue (OpAsmParser &parser, mlir::Attribute &valueAttr)
static void printConstant (OpAsmPrinter &p, Attribute value)
static void printGlobalOpTypeAndInitialValue (OpAsmPrinter &p, cir::GlobalOp op, TypeAttr type, Attribute initAttr, mlir::Region &ctorRegion, mlir::Region &dtorRegion)
static ParseResult parseGlobalOpTypeAndInitialValue (OpAsmParser &parser, TypeAttr &typeAttr, Attribute &initialValueAttr, mlir::Region &ctorRegion, mlir::Region &dtorRegion)
static llvm::StringRef getLinkageAttrNameString ()
 Returns the name used for the linkage attribute.
static LogicalResult verifyMemberPtrCast (Operation *op, mlir::Value src, mlir::Type resultTy)
static void printCopyTypes (mlir::OpAsmPrinter &printer, mlir::Operation *, mlir::Type srcType, mlir::Type dstType)
static mlir::ParseResult parseCopyTypes (mlir::OpAsmParser &parser, mlir::Type &srcType, mlir::Type &dstType)
static mlir::Type memberPointeeType (cir::RecordType recordTy, unsigned idx)
static OpFoldResult foldUnaryBitOp (mlir::Attribute inputAttr, llvm::function_ref< llvm::APInt(const llvm::APInt &)> func, bool poisonZero=false)
template<typename ThrowOpTy>
static mlir::LogicalResult verifyThrowOpImpl (ThrowOpTy op)
static void printTryHandlerRegions (mlir::OpAsmPrinter &printer, cir::TryOp op, mlir::MutableArrayRef< mlir::Region > handlerRegions, mlir::ArrayAttr handlerTypes)
static mlir::ParseResult parseTryHandlerRegions (mlir::OpAsmParser &parser, llvm::SmallVectorImpl< std::unique_ptr< mlir::Region > > &handlerRegions, mlir::ArrayAttr &handlerTypes)
static std::optional< unsigned > getRecordedIntegerWidth (mlir::Attribute attr)
 Reads a fundamental integer width from a signless i32 attribute.
static ParseResult parseEhDispatchDestinations (OpAsmParser &parser, mlir::ArrayAttr &catchTypes, SmallVectorImpl< Block * > &catchDestinations, Block *&defaultDestination, mlir::UnitAttr &defaultIsCatchAll)
static void printEhDispatchDestinations (OpAsmPrinter &p, cir::EhDispatchOp op, mlir::ArrayAttr catchTypes, SuccessorRange catchDestinations, Block *defaultDestination, mlir::UnitAttr defaultIsCatchAll)

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 5347 of file CIRDialect.cpp.

◆ GET_OP_LIST

#define GET_OP_LIST

◆ REGISTER_ENUM_TYPE

#define REGISTER_ENUM_TYPE ( Ty)
Value:
template <> struct EnumTraits<cir::Ty> { \
static llvm::StringRef stringify(cir::Ty value) { \
return stringify##Ty(value); \
} \
static unsigned getMaxEnumVal() { return cir::getMaxEnumValFor##Ty(); } \
}

Definition at line 310 of file CIRDialect.cpp.

Function Documentation

◆ areOpenCLVersionsCompatible()

bool areOpenCLVersionsCompatible ( cir::OpenCLVersionAttr openCLVersion,
cir::OpenCLVersionAttr cxxVersion )
static

Definition at line 129 of file CIRDialect.cpp.

Referenced by verifyOpenCLCXXVersion().

◆ checkConstantTypes()

LogicalResult checkConstantTypes ( mlir::Operation * op,
mlir::Type opType,
mlir::Attribute attrType )
static

Definition at line 760 of file CIRDialect.cpp.

◆ checkEffectAttrKinds()

ParseResult checkEffectAttrKinds ( mlir::OpAsmParser & parser,
llvm::SMLoc loc,
const mlir::NamedAttrList & attrs )
static

Reject an effect attribute of the wrong kind in an explicit attribute dictionary.

Where these are declared they are stored as properties, so a value of the wrong kind would be dropped without a diagnostic.

Definition at line 1329 of file CIRDialect.cpp.

Referenced by parseCallCommon().

◆ checkReturnAndFunction()

mlir::LogicalResult checkReturnAndFunction ( cir::ReturnOp op,
cir::FuncOp function )
static

Definition at line 1678 of file CIRDialect.cpp.

◆ ensureRegionTerm()

LogicalResult ensureRegionTerm ( OpAsmParser & parser,
Region & region,
SMLoc errLoc )
static

◆ foldUnaryBitOp()

OpFoldResult foldUnaryBitOp ( mlir::Attribute inputAttr,
llvm::function_ref< llvm::APInt(const llvm::APInt &)> func,
bool poisonZero = false )
static

Definition at line 4310 of file CIRDialect.cpp.

◆ getLinkageAttrNameString()

llvm::StringRef getLinkageAttrNameString ( )
static

Returns the name used for the linkage attribute.

This must correspond to the name of the attribute in ODS.

Definition at line 2657 of file CIRDialect.cpp.

◆ getRecordedIntegerWidth()

std::optional< unsigned > getRecordedIntegerWidth ( mlir::Attribute attr)
static

Reads a fundamental integer width from a signless i32 attribute.

Definition at line 5036 of file CIRDialect.cpp.

References cir::isValidFundamentalIntWidth().

◆ isCirFunctionPointerType()

bool isCirFunctionPointerType ( mlir::Type ty)
static

Definition at line 1111 of file CIRDialect.cpp.

Referenced by tryFoldCastChain().

◆ isFloatingPointCastKind()

bool isFloatingPointCastKind ( cir::CastKind kind)
static

Definition at line 834 of file CIRDialect.cpp.

References kind.

◆ isIntOrBoolCast()

bool isIntOrBoolCast ( cir::CastOp op)
static

Definition at line 1105 of file CIRDialect.cpp.

References kind.

Referenced by tryFoldCastChain().

◆ isOpenCLVersionAttrName()

bool isOpenCLVersionAttrName ( StringRef attrName)
static

Definition at line 114 of file CIRDialect.cpp.

◆ isRedundantBeforeReturn()

bool isRedundantBeforeReturn ( mlir::Region & cleanupRegion)
static

Definition at line 1909 of file CIRDialect.cpp.

◆ memberPointeeType()

mlir::Type memberPointeeType ( cir::RecordType recordTy,
unsigned idx )
static

Definition at line 3747 of file CIRDialect.cpp.

References cir::RecordType::getMembers(), and cir::memberStorageType().

◆ omitRegionTerm()

bool omitRegionTerm ( mlir::Region & r)
static

Definition at line 381 of file CIRDialect.cpp.

Referenced by printOmittedTerminatorRegion().

◆ parseAssumeBundle()

ParseResult parseAssumeBundle ( OpAsmParser & p,
cir::AssumeBundleKindAttr & bundleKindAttr,
llvm::SmallVector< mlir::OpAsmParser::UnresolvedOperand, 4 > & bundleArgs,
llvm::SmallVector< mlir::Type, 1 > & bundleArgTypes )
static

Definition at line 598 of file CIRDialect.cpp.

◆ parseCallCommon()

mlir::ParseResult parseCallCommon ( mlir::OpAsmParser & parser,
mlir::OperationState & result,
bool hasDestinationBlocks = false )
static

Definition at line 1349 of file CIRDialect.cpp.

References checkEffectAttrKinds(), and parseTryCallDestinations().

◆ parseCIRKeyword()

template<typename EnumTy, typename RetTy = EnumTy>
ParseResult parseCIRKeyword ( AsmParser & parser,
RetTy & result )
static

Parse an enum from the keyword, return failure if the keyword is not found.

Definition at line 340 of file CIRDialect.cpp.

References parseOptionalKeywordAlternative().

◆ parseConstantValue()

ParseResult parseConstantValue ( OpAsmParser & parser,
mlir::Attribute & valueAttr )
static

Definition at line 2319 of file CIRDialect.cpp.

Referenced by parseGlobalOpTypeAndInitialValue().

◆ parseCopyTypes()

mlir::ParseResult parseCopyTypes ( mlir::OpAsmParser & parser,
mlir::Type & srcType,
mlir::Type & dstType )
static

Definition at line 3628 of file CIRDialect.cpp.

◆ parseEhDispatchDestinations()

ParseResult parseEhDispatchDestinations ( OpAsmParser & parser,
mlir::ArrayAttr & catchTypes,
SmallVectorImpl< Block * > & catchDestinations,
Block *& defaultDestination,
mlir::UnitAttr & defaultIsCatchAll )
static

Definition at line 5145 of file CIRDialect.cpp.

◆ parseGlobalMemorySpace()

mlir::OptionalParseResult parseGlobalMemorySpace ( mlir::AsmParser & p,
mlir::ptr::MemorySpaceAttrInterface & attr )

Definition at line 1735 of file CIRTypes.cpp.

References parseMemorySpace().

◆ parseGlobalOpTypeAndInitialValue()

ParseResult parseGlobalOpTypeAndInitialValue ( OpAsmParser & parser,
TypeAttr & typeAttr,
Attribute & initialValueAttr,
mlir::Region & ctorRegion,
mlir::Region & dtorRegion )
static

Definition at line 2476 of file CIRDialect.cpp.

References ensureRegionTerm(), and parseConstantValue().

◆ parseIndirectBrOpSucessors()

ParseResult parseIndirectBrOpSucessors ( OpAsmParser & parser,
Type & flagType,
SmallVectorImpl< Block * > & succOperandBlocks,
SmallVectorImpl< SmallVector< OpAsmParser::UnresolvedOperand > > & succOperands,
SmallVectorImpl< SmallVector< Type > > & succOperandsTypes )

Definition at line 2074 of file CIRDialect.cpp.

◆ parseInlineKindAttr()

ParseResult parseInlineKindAttr ( OpAsmParser & parser,
cir::InlineKindAttr & inlineKindAttr )

Definition at line 407 of file CIRDialect.cpp.

◆ parseOmittedTerminatorRegion()

mlir::ParseResult parseOmittedTerminatorRegion ( mlir::OpAsmParser & parser,
mlir::Region & region )
static

Definition at line 443 of file CIRDialect.cpp.

References ensureRegionTerm().

◆ parseOptionalCIRKeyword()

template<typename EnumTy, typename RetTy = EnumTy>
RetTy parseOptionalCIRKeyword ( AsmParser & parser,
EnumTy defaultValue )
static

Parse an enum from the keyword, or default to the provided default value.

The return type is the enum type by default, unless overriden with the second template argument.

Definition at line 327 of file CIRDialect.cpp.

References parseOptionalKeywordAlternative().

◆ parseOptionalKeywordAlternative()

int parseOptionalKeywordAlternative ( AsmParser & parser,
ArrayRef< llvm::StringRef > keywords )
static

Definition at line 298 of file CIRDialect.cpp.

Referenced by parseCIRKeyword(), and parseOptionalCIRKeyword().

◆ parseSwitchFlatOpCases()

ParseResult parseSwitchFlatOpCases ( OpAsmParser & parser,
Type flagType,
mlir::ArrayAttr & caseValues,
SmallVectorImpl< Block * > & caseDestinations,
SmallVectorImpl< llvm::SmallVector< OpAsmParser::UnresolvedOperand > > & caseOperands,
SmallVectorImpl< llvm::SmallVector< Type > > & caseOperandTypes )
static

<cases> ::= [ (case (, case )* )?

] <case> ::= integer : bb-id (( ssa-use-and-type-list ))?

Definition at line 2242 of file CIRDialect.cpp.

◆ parseTryCallDestinations()

mlir::ParseResult parseTryCallDestinations ( mlir::OpAsmParser & parser,
mlir::OperationState & result )
static

Definition at line 1308 of file CIRDialect.cpp.

Referenced by parseCallCommon().

◆ parseTryHandlerRegions()

mlir::ParseResult parseTryHandlerRegions ( mlir::OpAsmParser & parser,
llvm::SmallVectorImpl< std::unique_ptr< mlir::Region > > & handlerRegions,
mlir::ArrayAttr & handlerTypes )
static

Definition at line 4876 of file CIRDialect.cpp.

◆ printAssumeBundle()

void printAssumeBundle ( OpAsmPrinter & p,
cir::AssumeOp op,
cir::AssumeBundleKindAttr kindAttr,
OperandRange bundleArgs,
TypeRange bundleArgTypes )
static

Definition at line 579 of file CIRDialect.cpp.

References kind.

◆ printCallCommon()

void printCallCommon ( mlir::Operation * op,
mlir::FlatSymbolRefAttr calleeSym,
mlir::Value indirectCallee,
mlir::OpAsmPrinter & printer,
bool isNothrow,
ArrayAttr argAttrs,
ArrayAttr resAttrs,
mlir::Block * normalDest = nullptr,
mlir::Block * unwindDest = nullptr )
static

Definition at line 1457 of file CIRDialect.cpp.

◆ printConstant()

void printConstant ( OpAsmPrinter & p,
Attribute value )
static

Definition at line 2325 of file CIRDialect.cpp.

Referenced by printGlobalOpTypeAndInitialValue().

◆ printCopyTypes()

void printCopyTypes ( mlir::OpAsmPrinter & printer,
mlir::Operation * ,
mlir::Type srcType,
mlir::Type dstType )
static

Definition at line 3619 of file CIRDialect.cpp.

◆ printEhDispatchDestinations()

void printEhDispatchDestinations ( OpAsmPrinter & p,
cir::EhDispatchOp op,
mlir::ArrayAttr catchTypes,
SuccessorRange catchDestinations,
Block * defaultDestination,
mlir::UnitAttr defaultIsCatchAll )
static

Definition at line 5284 of file CIRDialect.cpp.

◆ printGlobalMemorySpace()

void printGlobalMemorySpace ( mlir::AsmPrinter & printer,
cir::GlobalOp op,
mlir::ptr::MemorySpaceAttrInterface attr )

Definition at line 1744 of file CIRTypes.cpp.

References printMemorySpace().

◆ printGlobalOpTypeAndInitialValue()

void printGlobalOpTypeAndInitialValue ( OpAsmPrinter & p,
cir::GlobalOp op,
TypeAttr type,
Attribute initAttr,
mlir::Region & ctorRegion,
mlir::Region & dtorRegion )
static

Definition at line 2442 of file CIRDialect.cpp.

References printConstant().

◆ printIndirectBrOpSucessors()

void printIndirectBrOpSucessors ( OpAsmPrinter & p,
cir::IndirectBrOp op,
Type flagType,
SuccessorRange succs,
OperandRangeRange succOperands,
const TypeRangeRange & succOperandsTypes )

Definition at line 2106 of file CIRDialect.cpp.

◆ printInlineKindAttr()

void printInlineKindAttr ( OpAsmPrinter & p,
cir::InlineKindAttr inlineKindAttr )

Definition at line 433 of file CIRDialect.cpp.

◆ printOmittedTerminatorRegion()

void printOmittedTerminatorRegion ( mlir::OpAsmPrinter & printer,
cir::ScopeOp & op,
mlir::Region & region )
static

Definition at line 453 of file CIRDialect.cpp.

References omitRegionTerm().

◆ printSwitchFlatOpCases()

void printSwitchFlatOpCases ( OpAsmPrinter & p,
cir::SwitchFlatOp op,
Type flagType,
mlir::ArrayAttr caseValues,
SuccessorRange caseDestinations,
OperandRangeRange caseOperands,
const TypeRangeRange & caseOperandTypes )
static

Definition at line 2285 of file CIRDialect.cpp.

◆ printTryHandlerRegions()

void printTryHandlerRegions ( mlir::OpAsmPrinter & printer,
cir::TryOp op,
mlir::MutableArrayRef< mlir::Region > handlerRegions,
mlir::ArrayAttr handlerTypes )
static

Definition at line 4834 of file CIRDialect.cpp.

◆ tryFoldCastChain()

Value tryFoldCastChain ( cir::CastOp op)
static

Definition at line 1116 of file CIRDialect.cpp.

References isCirFunctionPointerType(), and isIntOrBoolCast().

◆ verifyArrayCtorDtor()

template<typename Op>
LogicalResult verifyArrayCtorDtor ( Op op)
static

Definition at line 497 of file CIRDialect.cpp.

◆ verifyCallCommInSymbolUses()

LogicalResult verifyCallCommInSymbolUses ( mlir::Operation * op,
SymbolTableCollection & symbolTable )
static

Definition at line 1559 of file CIRDialect.cpp.

References cir::MissingFeatures::opCallCallConv().

◆ verifyLoopCleanup()

template<typename LoopOpTy>
LogicalResult verifyLoopCleanup ( LoopOpTy op)
static

Definition at line 733 of file CIRDialect.cpp.

◆ verifyMemberPtrCast()

LogicalResult verifyMemberPtrCast ( Operation * op,
mlir::Value src,
mlir::Type resultTy )
static

Definition at line 3474 of file CIRDialect.cpp.

References cir::MissingFeatures::memberFuncPtrCast().

◆ verifyOffloadContainer()

LogicalResult verifyOffloadContainer ( mlir::Operation * op)
static

Definition at line 216 of file CIRDialect.cpp.

References verifyOffloadKind().

◆ verifyOffloadKind()

LogicalResult verifyOffloadKind ( mlir::ModuleOp module,
cir::OffloadKind expected )
static

Definition at line 197 of file CIRDialect.cpp.

Referenced by verifyOffloadContainer().

◆ verifyOpenCLCXXVersion()

LogicalResult verifyOpenCLCXXVersion ( ModuleOp module,
cir::OpenCLVersionAttr cxxVersion )
static

Definition at line 137 of file CIRDialect.cpp.

References areOpenCLVersionsCompatible().

Referenced by verifyOpenCLVersionAttr().

◆ verifyOpenCLVersionAttr()

LogicalResult verifyOpenCLVersionAttr ( Operation * op,
NamedAttribute attr )
static

Definition at line 157 of file CIRDialect.cpp.

References verifyOpenCLCXXVersion(), and verifyOpenCLVersionAttrPlacement().

◆ verifyOpenCLVersionAttrPlacement()

LogicalResult verifyOpenCLVersionAttrPlacement ( Operation * op,
NamedAttribute attr )
static

Definition at line 119 of file CIRDialect.cpp.

Referenced by verifyOpenCLVersionAttr().

◆ verifyProducedBy()

template<typename ExpectedProducerOp>
LogicalResult verifyProducedBy ( Operation * op,
Value operand,
StringRef operandName )
static

Definition at line 393 of file CIRDialect.cpp.

◆ verifyThrowOpImpl()

template<typename ThrowOpTy>
mlir::LogicalResult verifyThrowOpImpl ( ThrowOpTy op)
static

Definition at line 4647 of file CIRDialect.cpp.