MLIR  22.0.0git
Macros | Functions
EmitC.cpp File Reference
#include "mlir/Dialect/EmitC/IR/EmitC.h"
#include "mlir/Dialect/EmitC/IR/EmitCInterfaces.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/DialectImplementation.h"
#include "mlir/IR/Types.h"
#include "mlir/Interfaces/FunctionImplementation.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/Casting.h"
#include "mlir/Dialect/EmitC/IR/EmitCDialect.cpp.inc"
#include "mlir/Dialect/EmitC/IR/EmitC.cpp.inc"
#include "mlir/Dialect/EmitC/IR/EmitCTypes.cpp.inc"
#include "mlir/Dialect/EmitC/IR/EmitCAttributes.cpp.inc"
#include "mlir/Dialect/EmitC/IR/EmitCEnums.cpp.inc"
#include "mlir/Dialect/EmitC/IR/EmitCInterfaces.cpp.inc"

Go to the source code of this file.

Macros

#define GET_OP_LIST
 
#define GET_TYPEDEF_LIST
 
#define GET_ATTRDEF_LIST
 
#define GET_ATTRDEF_CLASSES
 
#define GET_TYPEDEF_CLASSES
 
#define GET_OP_CLASSES
 

Functions

static LogicalResult verifyInitializationAttribute (Operation *op, Attribute value)
 Check that the type of the initial value is compatible with the operations result type. More...
 
template<class ArgType >
FailureOr< SmallVector< ReplacementItem > > parseFormatString (StringRef toParse, ArgType fmtArgs, llvm::function_ref< mlir::InFlightDiagnostic()> emitError={})
 Parse a format string and return a list of its parts. More...
 
static void printEmitCGlobalOpTypeAndInitialValue (OpAsmPrinter &p, GlobalOp op, TypeAttr type, Attribute initialValue)
 
static Type getInitializerTypeForGlobal (Type type)
 
static ParseResult parseEmitCGlobalOpTypeAndInitialValue (OpAsmParser &parser, TypeAttr &typeAttr, Attribute &initialValue)
 
static ParseResult parseSwitchCases (OpAsmParser &parser, DenseI64ArrayAttr &cases, SmallVectorImpl< std::unique_ptr< Region >> &caseRegions)
 Parse the case regions and values. More...
 
static void printSwitchCases (OpAsmPrinter &p, Operation *op, DenseI64ArrayAttr cases, RegionRange caseRegions)
 Print the case regions and values. More...
 
static LogicalResult verifyRegion (emitc::SwitchOp op, Region &region, const Twine &name)
 
static void printEmitCFieldOpTypeAndInitialValue (OpAsmPrinter &p, FieldOp op, TypeAttr type, Attribute initialValue)
 
static Type getInitializerTypeForField (Type type)
 
static ParseResult parseEmitCFieldOpTypeAndInitialValue (OpAsmParser &parser, TypeAttr &typeAttr, Attribute &initialValue)
 

Macro Definition Documentation

◆ GET_ATTRDEF_CLASSES

#define GET_ATTRDEF_CLASSES

Definition at line 1066 of file EmitC.cpp.

◆ GET_ATTRDEF_LIST

#define GET_ATTRDEF_LIST

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 1542 of file EmitC.cpp.

◆ GET_OP_LIST

#define GET_OP_LIST

◆ GET_TYPEDEF_CLASSES

#define GET_TYPEDEF_CLASSES

Definition at line 1073 of file EmitC.cpp.

◆ GET_TYPEDEF_LIST

#define GET_TYPEDEF_LIST

Function Documentation

◆ getInitializerTypeForField()

static Type getInitializerTypeForField ( Type  type)
static

Definition at line 1461 of file EmitC.cpp.

References mlir::get().

Referenced by parseEmitCFieldOpTypeAndInitialValue().

◆ getInitializerTypeForGlobal()

static Type getInitializerTypeForGlobal ( Type  type)
static

Definition at line 1202 of file EmitC.cpp.

References mlir::get().

Referenced by parseEmitCGlobalOpTypeAndInitialValue().

◆ parseEmitCFieldOpTypeAndInitialValue()

static ParseResult parseEmitCFieldOpTypeAndInitialValue ( OpAsmParser parser,
TypeAttr &  typeAttr,
Attribute initialValue 
)
static

◆ parseEmitCGlobalOpTypeAndInitialValue()

static ParseResult parseEmitCGlobalOpTypeAndInitialValue ( OpAsmParser parser,
TypeAttr &  typeAttr,
Attribute initialValue 
)
static

◆ parseFormatString()

template<class ArgType >
FailureOr<SmallVector<ReplacementItem> > parseFormatString ( StringRef  toParse,
ArgType  fmtArgs,
llvm::function_ref< mlir::InFlightDiagnostic()>  emitError = {} 
)

Parse a format string and return a list of its parts.

A part is either a StringRef that has to be printed as-is, or a Placeholder which requires printing the next operand of the VerbatimOp. In the format string, all {} are replaced by Placeholders, except if the { is escaped by {{ - then it doesn't start a placeholder.

Definition at line 177 of file EmitC.cpp.

Referenced by mlir::tblgen::FmtObjectBase::FmtObjectBase().

◆ parseSwitchCases()

static ParseResult parseSwitchCases ( OpAsmParser parser,
DenseI64ArrayAttr cases,
SmallVectorImpl< std::unique_ptr< Region >> &  caseRegions 
)
static

◆ printEmitCFieldOpTypeAndInitialValue()

static void printEmitCFieldOpTypeAndInitialValue ( OpAsmPrinter p,
FieldOp  op,
TypeAttr  type,
Attribute  initialValue 
)
static

Definition at line 1451 of file EmitC.cpp.

References mlir::AsmPrinter::printAttributeWithoutType().

◆ printEmitCGlobalOpTypeAndInitialValue()

static void printEmitCGlobalOpTypeAndInitialValue ( OpAsmPrinter p,
GlobalOp  op,
TypeAttr  type,
Attribute  initialValue 
)
static

Definition at line 1192 of file EmitC.cpp.

References mlir::AsmPrinter::printAttributeWithoutType().

◆ printSwitchCases()

static void printSwitchCases ( OpAsmPrinter p,
Operation op,
DenseI64ArrayAttr  cases,
RegionRange  caseRegions 
)
static

◆ verifyInitializationAttribute()

static LogicalResult verifyInitializationAttribute ( Operation op,
Attribute  value 
)
static

Check that the type of the initial value is compatible with the operations result type.

Definition at line 142 of file EmitC.cpp.

References mlir::Operation::emitOpError(), mlir::Operation::getNumResults(), mlir::Operation::getResult(), mlir::Value::getType(), mlir::Type::isIndex(), and mlir::emitc::isPointerWideType().

◆ verifyRegion()

static LogicalResult verifyRegion ( emitc::SwitchOp  op,
Region region,
const Twine &  name 
)
static