CIRCT
20.0.0git
|
Classes | |
class | MatchResult |
This class allows a pattern's match function for inlining to pass its result's precedence to the pattern that requested the expression. More... | |
class | PatternBase |
This is indented to be the base class for all emission patterns. More... | |
struct | OpEmissionPatternBase |
This is intended to be the base class for all emission patterns matching on operations. More... | |
struct | TypeEmissionPatternBase |
This is intended to be the base class for all emission patterns matching on types. More... | |
struct | AttrEmissionPatternBase |
This is intended to be the base class for all emission patterns matching on attributes. More... | |
struct | OpEmissionPattern |
This is a convenience class providing default implementations for operation emission patterns. More... | |
struct | TypeEmissionPattern |
This is a convenience class providing default implementations for type emission patterns. More... | |
struct | AttrEmissionPattern |
This is a convenience class providing default implementations for attribute emission patterns. More... | |
class | EmissionPatternSet |
This class collects a set of emission patterns with base type 'PatternTy'. More... | |
class | FrozenEmissionPatternSet |
This class intends to collect a set of emission patterns in a way to provide fast lookups, but does not allow to add more patterns after construction. More... | |
class | EmissionPrinter |
This is intended to be the driving class for all pattern-based IR emission. More... | |
class | InlineEmitter |
This class is returned to a pattern that requested inlined emission of a value. More... | |
Typedefs | |
using | OpEmissionPatternSet = EmissionPatternSet< OpEmissionPatternBase > |
using | TypeEmissionPatternSet = EmissionPatternSet< TypeEmissionPatternBase > |
using | AttrEmissionPatternSet = EmissionPatternSet< AttrEmissionPatternBase > |
using | FrozenOpEmissionPatternSet = FrozenEmissionPatternSet< OpEmissionPatternBase, OperationName > |
using | FrozenTypeEmissionPatternSet = FrozenEmissionPatternSet< TypeEmissionPatternBase, TypeID > |
using | FrozenAttrEmissionPatternSet = FrozenEmissionPatternSet< AttrEmissionPatternBase, TypeID > |
Enumerations | |
enum class | Precedence { LIT = 0 , VAR = 0 , SCOPE_RESOLUTION = 1 , POSTFIX_INC = 2 , POSTFIX_DEC = 2 , FUNCTIONAL_CAST = 2 , FUNCTION_CALL = 2 , SUBSCRIPT = 2 , MEMBER_ACCESS = 2 , PREFIX_INC = 3 , PREFIX_DEC = 3 , NOT = 3 , CAST = 3 , DEREFERENCE = 3 , ADDRESS_OF = 3 , SIZEOF = 3 , NEW = 3 , DELETE = 3 , POINTER_TO_MEMBER = 4 , MUL = 5 , DIV = 5 , MOD = 5 , ADD = 6 , SUB = 6 , SHL = 7 , SHR = 7 , RELATIONAL = 9 , EQUALITY = 10 , BITWISE_AND = 11 , BITWISE_XOR = 12 , BITWISE_OR = 13 , LOGICAL_AND = 14 , LOGICAL_OR = 15 , TERNARY = 16 , THROW = 16 , ASSIGN = 16 , COMMA = 17 } |
This enum encodes the precedence of C++ expressions. More... | |
Functions | |
LogicalResult | exportSystemC (ModuleOp module, llvm::raw_ostream &os) |
LogicalResult | exportSplitSystemC (ModuleOp module, StringRef directory) |
void | registerExportSystemCTranslation () |
void | populateBuiltinOpEmitters (OpEmissionPatternSet &patterns, MLIRContext *context) |
Register Builtin operation emission patterns. More... | |
void | populateBuiltinTypeEmitters (TypeEmissionPatternSet &patterns) |
Register Builtin type emission patterns. More... | |
void | populateBuiltinAttrEmitters (AttrEmissionPatternSet &patterns) |
Register Builtin attribute emission patterns. More... | |
void | populateEmitCOpEmitters (OpEmissionPatternSet &patterns, MLIRContext *context) |
Register EmitC operation emission patterns. More... | |
void | populateEmitCTypeEmitters (TypeEmissionPatternSet &patterns) |
Register EmitC type emission patterns. More... | |
void | populateEmitCAttrEmitters (AttrEmissionPatternSet &patterns) |
Register EmitC attribute emission patterns. More... | |
void | populateHWEmitters (OpEmissionPatternSet &patterns, MLIRContext *context) |
void | populateSystemCOpEmitters (OpEmissionPatternSet &patterns, MLIRContext *context) |
Register SystemC operation emission patterns. More... | |
void | populateSystemCTypeEmitters (TypeEmissionPatternSet &patterns) |
Register SystemC type emission patterns. More... | |
void | registerAllOpEmitters (OpEmissionPatternSet &patterns, MLIRContext *context) |
Collects the operation emission patterns of all supported dialects. More... | |
void | registerAllTypeEmitters (TypeEmissionPatternSet &patterns) |
Collects the type emission patterns of all supported dialects. More... | |
void | registerAllAttrEmitters (AttrEmissionPatternSet &patterns) |
using circt::ExportSystemC::AttrEmissionPatternSet = typedef EmissionPatternSet<AttrEmissionPatternBase> |
Definition at line 35 of file EmissionPatternSupport.h.
using circt::ExportSystemC::FrozenAttrEmissionPatternSet = typedef FrozenEmissionPatternSet<AttrEmissionPatternBase, TypeID> |
Definition at line 41 of file EmissionPatternSupport.h.
using circt::ExportSystemC::FrozenOpEmissionPatternSet = typedef FrozenEmissionPatternSet<OpEmissionPatternBase, OperationName> |
Definition at line 37 of file EmissionPatternSupport.h.
using circt::ExportSystemC::FrozenTypeEmissionPatternSet = typedef FrozenEmissionPatternSet<TypeEmissionPatternBase, TypeID> |
Definition at line 39 of file EmissionPatternSupport.h.
using circt::ExportSystemC::OpEmissionPatternSet = typedef EmissionPatternSet<OpEmissionPatternBase> |
Definition at line 33 of file EmissionPatternSupport.h.
using circt::ExportSystemC::TypeEmissionPatternSet = typedef EmissionPatternSet<TypeEmissionPatternBase> |
Definition at line 34 of file EmissionPatternSupport.h.
|
strong |
This enum encodes the precedence of C++ expressions.
A lower number means higher precedence. Source: https://en.cppreference.com/w/cpp/language/operator_precedence
Definition at line 33 of file EmissionPattern.h.
LogicalResult circt::ExportSystemC::exportSplitSystemC | ( | ModuleOp | module, |
StringRef | directory | ||
) |
Definition at line 87 of file ExportSystemC.cpp.
References append(), and emitFile().
Referenced by registerExportSystemCTranslation().
LogicalResult circt::ExportSystemC::exportSystemC | ( | ModuleOp | module, |
llvm::raw_ostream & | os | ||
) |
Definition at line 82 of file ExportSystemC.cpp.
References emitFile().
Referenced by registerExportSystemCTranslation().
void circt::ExportSystemC::populateBuiltinAttrEmitters | ( | AttrEmissionPatternSet & | patterns | ) |
Register Builtin attribute emission patterns.
Definition at line 129 of file BuiltinEmissionPatterns.cpp.
Referenced by registerAllAttrEmitters().
void circt::ExportSystemC::populateBuiltinOpEmitters | ( | OpEmissionPatternSet & | patterns, |
MLIRContext * | context | ||
) |
Register Builtin operation emission patterns.
Definition at line 119 of file BuiltinEmissionPatterns.cpp.
Referenced by registerAllOpEmitters().
void circt::ExportSystemC::populateBuiltinTypeEmitters | ( | TypeEmissionPatternSet & | patterns | ) |
Register Builtin type emission patterns.
Definition at line 124 of file BuiltinEmissionPatterns.cpp.
Referenced by registerAllTypeEmitters().
void circt::ExportSystemC::populateEmitCAttrEmitters | ( | AttrEmissionPatternSet & | patterns | ) |
Register EmitC attribute emission patterns.
Definition at line 249 of file EmitCEmissionPatterns.cpp.
Referenced by registerAllAttrEmitters().
void circt::ExportSystemC::populateEmitCOpEmitters | ( | OpEmissionPatternSet & | patterns, |
MLIRContext * | context | ||
) |
Register EmitC operation emission patterns.
Definition at line 238 of file EmitCEmissionPatterns.cpp.
Referenced by registerAllOpEmitters().
void circt::ExportSystemC::populateEmitCTypeEmitters | ( | TypeEmissionPatternSet & | patterns | ) |
Register EmitC type emission patterns.
Definition at line 244 of file EmitCEmissionPatterns.cpp.
Referenced by registerAllTypeEmitters().
void circt::ExportSystemC::populateHWEmitters | ( | OpEmissionPatternSet & | patterns, |
MLIRContext * | context | ||
) |
Definition at line 49 of file HWEmissionPatterns.cpp.
Referenced by registerAllOpEmitters().
void circt::ExportSystemC::populateSystemCOpEmitters | ( | OpEmissionPatternSet & | patterns, |
MLIRContext * | context | ||
) |
Register SystemC operation emission patterns.
Definition at line 576 of file SystemCEmissionPatterns.cpp.
Referenced by registerAllOpEmitters().
void circt::ExportSystemC::populateSystemCTypeEmitters | ( | TypeEmissionPatternSet & | patterns | ) |
Register SystemC type emission patterns.
Definition at line 591 of file SystemCEmissionPatterns.cpp.
Referenced by registerAllTypeEmitters().
|
inline |
Definition at line 42 of file RegisterAllEmitters.h.
References populateBuiltinAttrEmitters(), and populateEmitCAttrEmitters().
Referenced by emitFile().
|
inline |
Collects the operation emission patterns of all supported dialects.
Definition at line 27 of file RegisterAllEmitters.h.
References populateBuiltinOpEmitters(), populateEmitCOpEmitters(), populateHWEmitters(), and populateSystemCOpEmitters().
Referenced by emitFile().
|
inline |
Collects the type emission patterns of all supported dialects.
Definition at line 36 of file RegisterAllEmitters.h.
References populateBuiltinTypeEmitters(), populateEmitCTypeEmitters(), and populateSystemCTypeEmitters().
Referenced by emitFile().
void circt::ExportSystemC::registerExportSystemCTranslation | ( | ) |
Definition at line 128 of file ExportSystemC.cpp.
References exportSplitSystemC(), and exportSystemC().
Referenced by circt::registerAllTranslations().