Skip to content

Commit ed7365a

Browse files
committed
core: Introduce typed references.
1 parent 419d21d commit ed7365a

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

include/vast/Dialect/Core/CoreAttributes.hpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,27 @@ namespace vast::core {
4040
// Symbol Reference Attributes
4141
//
4242
struct VarSymbolRefAttr : mlir::FlatSymbolRefAttr {};
43+
struct TypeSymbolRefAttr : mlir::FlatSymbolRefAttr {};
44+
struct FuncSymbolRefAttr : mlir::FlatSymbolRefAttr {};
45+
struct LabelSymbolRefAttr : mlir::FlatSymbolRefAttr {};
46+
struct EnumConstantSymbolRefAttr : mlir::FlatSymbolRefAttr {};
47+
struct MemberVarSymbolRefAttr : mlir::FlatSymbolRefAttr {};
48+
struct ElaboratedTypeSymbolRefAttr : mlir::FlatSymbolRefAttr {};
4349

44-
using var_symbol_ref_attr = VarSymbolRefAttr;
50+
using var_symbol_ref_attr = VarSymbolRefAttr;
51+
using type_symbol_ref_attr = TypeSymbolRefAttr;
52+
using func_symbol_ref_attr = FuncSymbolRefAttr;
53+
using label_symbol_ref_attr = LabelSymbolRefAttr;
54+
using enum_constant_symbol_ref_attr = EnumConstantSymbolRefAttr;
55+
using member_var_symbol_ref_attr = MemberVarSymbolRefAttr;
56+
using elaborated_type_symbol_ref_attr = ElaboratedTypeSymbolRefAttr;
4557

4658
} // namespace vast::core
59+
60+
MLIR_DECLARE_EXPLICIT_TYPE_ID(vast::core::VarSymbolRefAttr);
61+
MLIR_DECLARE_EXPLICIT_TYPE_ID(vast::core::TypeSymbolRefAttr);
62+
MLIR_DECLARE_EXPLICIT_TYPE_ID(vast::core::FuncSymbolRefAttr);
63+
MLIR_DECLARE_EXPLICIT_TYPE_ID(vast::core::LabelSymbolRefAttr);
64+
MLIR_DECLARE_EXPLICIT_TYPE_ID(vast::core::EnumConstantSymbolRefAttr);
65+
MLIR_DECLARE_EXPLICIT_TYPE_ID(vast::core::MemberVarSymbolRefAttr);
66+
MLIR_DECLARE_EXPLICIT_TYPE_ID(vast::core::ElaboratedTypeSymbolRefAttr);

lib/vast/Dialect/Core/CoreAttributes.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,11 @@ namespace vast::core
7878
}
7979

8080
} // namespace vast::core
81+
82+
MLIR_DEFINE_EXPLICIT_TYPE_ID(vast::core::VarSymbolRefAttr);
83+
MLIR_DEFINE_EXPLICIT_TYPE_ID(vast::core::TypeSymbolRefAttr);
84+
MLIR_DEFINE_EXPLICIT_TYPE_ID(vast::core::FuncSymbolRefAttr);
85+
MLIR_DEFINE_EXPLICIT_TYPE_ID(vast::core::LabelSymbolRefAttr);
86+
MLIR_DEFINE_EXPLICIT_TYPE_ID(vast::core::EnumConstantSymbolRefAttr);
87+
MLIR_DEFINE_EXPLICIT_TYPE_ID(vast::core::MemberVarSymbolRefAttr);
88+
MLIR_DEFINE_EXPLICIT_TYPE_ID(vast::core::ElaboratedTypeSymbolRefAttr);

0 commit comments

Comments
 (0)