|
CIRCT 23.0.0git
|
Public Member Functions | |
| None | __init__ (self, CppTypePlanner planner) |
| str | type_identifier (self, types.ESIType type) |
| None | write_header (self, Path output_dir, str system_name) |
Public Attributes | |
| type_id_map | |
| ordered_types | |
| has_cycle | |
Protected Member Functions | |
| str | _get_bitvector_str (self, types.ESIType type) |
| Tuple[str, str] | _array_base_and_suffix (self, types.ArrayType array_type) |
| str | _format_array_type (self, types.ArrayType array_type) |
| str | _cpp_type (self, types.ESIType wrapped) |
| types.ESIType | _unwrap_aliases (self, types.ESIType wrapped) |
| str | _format_array_decl (self, types.ArrayType array_type, str name) |
| None | _emit_struct (self, TextIO hdr, types.StructType struct_type) |
| None | _emit_alias (self, TextIO hdr, types.TypeAlias alias_type) |
Emit C++ headers from precomputed type ordering.
Definition at line 275 of file codegen.py.
| None esiaccel.codegen.CppTypeEmitter.__init__ | ( | self, | |
| CppTypePlanner | planner | ||
| ) |
Definition at line 278 of file codegen.py.
Referenced by synth.LongestPathCollection.drop_non_critical_paths(), and synth.LongestPathCollection.merge().
|
protected |
Return the base C++ type and bracket suffix for a nested array.
Definition at line 308 of file codegen.py.
References esiaccel.codegen.CppTypeEmitter._cpp_type().
Referenced by esiaccel.codegen.CppTypeEmitter._format_array_decl(), and esiaccel.codegen.CppTypeEmitter._format_array_type().
|
protected |
Resolve an ESI type to its C++ identifier.
Definition at line 325 of file codegen.py.
References esiaccel.codegen.CppTypeEmitter._cpp_type(), esiaccel.codegen.CppTypeEmitter._format_array_type(), esiaccel.codegen.CppTypeEmitter._get_bitvector_str(), and esiaccel.codegen.CppTypeEmitter.type_id_map.
Referenced by esiaccel.codegen.CppTypeEmitter._array_base_and_suffix(), esiaccel.codegen.CppTypeEmitter._cpp_type(), esiaccel.codegen.CppTypeEmitter._emit_alias(), esiaccel.codegen.CppTypeEmitter._emit_struct(), and esiaccel.codegen.CppTypeEmitter.type_identifier().
|
protected |
Emit a using alias when the alias targets a different C++ type.
Definition at line 391 of file codegen.py.
References esiaccel.codegen.CppTypeEmitter._cpp_type(), and esiaccel.codegen.CppTypeEmitter.type_id_map.
Referenced by esiaccel.codegen.CppTypeEmitter.write_header().
|
protected |
Emit a packed struct declaration plus its type id string.
Definition at line 360 of file codegen.py.
References esiaccel.codegen.CppTypeEmitter._cpp_type(), esiaccel.codegen.CppTypeEmitter._format_array_decl(), and esiaccel.codegen.CppTypeEmitter._unwrap_aliases().
Referenced by esiaccel.codegen.CppTypeEmitter.write_header().
|
protected |
Emit a field declaration for a multi-dimensional array member. The declaration flattens nested arrays into repeated bracketed sizes for C++.
Definition at line 352 of file codegen.py.
References esiaccel.codegen.CppTypeEmitter._array_base_and_suffix().
Referenced by esiaccel.codegen.CppTypeEmitter._emit_struct().
|
protected |
Return the C++ type string for a nested array alias.
Definition at line 320 of file codegen.py.
References esiaccel.codegen.CppTypeEmitter._array_base_and_suffix().
Referenced by esiaccel.codegen.CppTypeEmitter._cpp_type().
|
protected |
Get the textual code for the storage class of an integer type.
Definition at line 287 of file codegen.py.
Referenced by esiaccel.codegen.CppTypeEmitter._cpp_type().
|
protected |
Strip alias wrappers to reach the underlying type.
Definition at line 346 of file codegen.py.
Referenced by esiaccel.codegen.CppTypeEmitter._emit_struct().
| str esiaccel.codegen.CppTypeEmitter.type_identifier | ( | self, | |
| types.ESIType | type | ||
| ) |
Get the C++ type string for an ESI type.
Definition at line 283 of file codegen.py.
References esiaccel.codegen.CppTypeEmitter._cpp_type().
| None esiaccel.codegen.CppTypeEmitter.write_header | ( | self, | |
| Path | output_dir, | ||
| str | system_name | ||
| ) |
Emit the fully ordered types.h header into the output directory.
Definition at line 403 of file codegen.py.
References esiaccel.codegen.CppTypeEmitter._emit_alias(), esiaccel.codegen.CppTypeEmitter._emit_struct(), esiaccel.codegen.CppTypePlanner.has_cycle, esiaccel.codegen.CppTypeEmitter.has_cycle, esiaccel.codegen.CppTypePlanner.ordered_types, and esiaccel.codegen.CppTypeEmitter.ordered_types.
| esiaccel.codegen.CppTypeEmitter.has_cycle |
Definition at line 281 of file codegen.py.
Referenced by esiaccel.codegen.CppTypeEmitter.write_header().
| esiaccel.codegen.CppTypeEmitter.ordered_types |
Definition at line 280 of file codegen.py.
Referenced by esiaccel.codegen.CppTypePlanner.__init__(), and esiaccel.codegen.CppTypeEmitter.write_header().
| esiaccel.codegen.CppTypeEmitter.type_id_map |
Definition at line 279 of file codegen.py.
Referenced by esiaccel.codegen.CppTypePlanner.__init__(), esiaccel.codegen.CppTypePlanner._collect_aliases(), esiaccel.codegen.CppTypePlanner._collect_structs(), esiaccel.codegen.CppTypeEmitter._cpp_type(), esiaccel.codegen.CppTypeEmitter._emit_alias(), and esiaccel.codegen.CppTypePlanner._ordered_emit_types().