|
clang 24.0.0git
|
#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 ®ion, 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 ®ion) |
| static void | printOmittedTerminatorRegion (mlir::OpAsmPrinter &printer, cir::ScopeOp &op, mlir::Region ®ion) |
| 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) |
| #define GET_OP_CLASSES |
Definition at line 5347 of file CIRDialect.cpp.
| #define GET_OP_LIST |
| #define REGISTER_ENUM_TYPE | ( | Ty | ) |
Definition at line 310 of file CIRDialect.cpp.
|
static |
Definition at line 129 of file CIRDialect.cpp.
Referenced by verifyOpenCLCXXVersion().
|
static |
Definition at line 760 of file CIRDialect.cpp.
|
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().
|
static |
Definition at line 1678 of file CIRDialect.cpp.
|
static |
Definition at line 354 of file CIRDialect.cpp.
Referenced by parseGlobalOpTypeAndInitialValue(), and parseOmittedTerminatorRegion().
|
static |
Definition at line 4310 of file CIRDialect.cpp.
|
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.
|
static |
Reads a fundamental integer width from a signless i32 attribute.
Definition at line 5036 of file CIRDialect.cpp.
References cir::isValidFundamentalIntWidth().
|
static |
Definition at line 1111 of file CIRDialect.cpp.
Referenced by tryFoldCastChain().
|
static |
Definition at line 834 of file CIRDialect.cpp.
References kind.
|
static |
|
static |
Definition at line 114 of file CIRDialect.cpp.
|
static |
Definition at line 1909 of file CIRDialect.cpp.
|
static |
Definition at line 3747 of file CIRDialect.cpp.
References cir::RecordType::getMembers(), and cir::memberStorageType().
|
static |
Definition at line 381 of file CIRDialect.cpp.
Referenced by printOmittedTerminatorRegion().
|
static |
Definition at line 598 of file CIRDialect.cpp.
|
static |
Definition at line 1349 of file CIRDialect.cpp.
References checkEffectAttrKinds(), and parseTryCallDestinations().
|
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().
|
static |
Definition at line 2319 of file CIRDialect.cpp.
Referenced by parseGlobalOpTypeAndInitialValue().
|
static |
Definition at line 3628 of file CIRDialect.cpp.
|
static |
Definition at line 5145 of file CIRDialect.cpp.
| mlir::OptionalParseResult parseGlobalMemorySpace | ( | mlir::AsmParser & | p, |
| mlir::ptr::MemorySpaceAttrInterface & | attr ) |
Definition at line 1735 of file CIRTypes.cpp.
References parseMemorySpace().
|
static |
Definition at line 2476 of file CIRDialect.cpp.
References ensureRegionTerm(), and parseConstantValue().
| 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.
| ParseResult parseInlineKindAttr | ( | OpAsmParser & | parser, |
| cir::InlineKindAttr & | inlineKindAttr ) |
Definition at line 407 of file CIRDialect.cpp.
|
static |
Definition at line 443 of file CIRDialect.cpp.
References ensureRegionTerm().
|
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().
|
static |
Definition at line 298 of file CIRDialect.cpp.
Referenced by parseCIRKeyword(), and parseOptionalCIRKeyword().
|
static |
<cases> ::= [ (case (, case )* )?
] <case> ::= integer : bb-id (( ssa-use-and-type-list ))?
Definition at line 2242 of file CIRDialect.cpp.
|
static |
Definition at line 1308 of file CIRDialect.cpp.
Referenced by parseCallCommon().
|
static |
Definition at line 4876 of file CIRDialect.cpp.
|
static |
Definition at line 579 of file CIRDialect.cpp.
References kind.
|
static |
Definition at line 1457 of file CIRDialect.cpp.
|
static |
Definition at line 2325 of file CIRDialect.cpp.
Referenced by printGlobalOpTypeAndInitialValue().
|
static |
Definition at line 3619 of file CIRDialect.cpp.
|
static |
Definition at line 5284 of file CIRDialect.cpp.
| void printGlobalMemorySpace | ( | mlir::AsmPrinter & | printer, |
| cir::GlobalOp | op, | ||
| mlir::ptr::MemorySpaceAttrInterface | attr ) |
Definition at line 1744 of file CIRTypes.cpp.
References printMemorySpace().
|
static |
Definition at line 2442 of file CIRDialect.cpp.
References printConstant().
| void printIndirectBrOpSucessors | ( | OpAsmPrinter & | p, |
| cir::IndirectBrOp | op, | ||
| Type | flagType, | ||
| SuccessorRange | succs, | ||
| OperandRangeRange | succOperands, | ||
| const TypeRangeRange & | succOperandsTypes ) |
Definition at line 2106 of file CIRDialect.cpp.
| void printInlineKindAttr | ( | OpAsmPrinter & | p, |
| cir::InlineKindAttr | inlineKindAttr ) |
Definition at line 433 of file CIRDialect.cpp.
|
static |
Definition at line 453 of file CIRDialect.cpp.
References omitRegionTerm().
|
static |
Definition at line 2285 of file CIRDialect.cpp.
|
static |
Definition at line 4834 of file CIRDialect.cpp.
|
static |
Definition at line 1116 of file CIRDialect.cpp.
References isCirFunctionPointerType(), and isIntOrBoolCast().
|
static |
Definition at line 497 of file CIRDialect.cpp.
|
static |
Definition at line 1559 of file CIRDialect.cpp.
References cir::MissingFeatures::opCallCallConv().
|
static |
Definition at line 733 of file CIRDialect.cpp.
|
static |
Definition at line 3474 of file CIRDialect.cpp.
References cir::MissingFeatures::memberFuncPtrCast().
|
static |
Definition at line 216 of file CIRDialect.cpp.
References verifyOffloadKind().
|
static |
Definition at line 197 of file CIRDialect.cpp.
Referenced by verifyOffloadContainer().
|
static |
Definition at line 137 of file CIRDialect.cpp.
References areOpenCLVersionsCompatible().
Referenced by verifyOpenCLVersionAttr().
|
static |
Definition at line 157 of file CIRDialect.cpp.
References verifyOpenCLCXXVersion(), and verifyOpenCLVersionAttrPlacement().
|
static |
Definition at line 119 of file CIRDialect.cpp.
Referenced by verifyOpenCLVersionAttr().
|
static |
Definition at line 393 of file CIRDialect.cpp.
|
static |
Definition at line 4647 of file CIRDialect.cpp.