diff --git a/include/vast/Dialect/Core/Core.td b/include/vast/Dialect/Core/Core.td index 5effdf7b9a..68383bbd6e 100644 --- a/include/vast/Dialect/Core/Core.td +++ b/include/vast/Dialect/Core/Core.td @@ -42,6 +42,4 @@ include "vast/Dialect/Core/CoreTypes.td" include "vast/Dialect/Core/CoreOps.td" include "vast/Dialect/Core/CoreAttributes.td" -include "vast/Dialect/Core/Linkage.td" - #endif // VAST_DIALECT_CORE diff --git a/include/vast/Dialect/Core/CoreAttributes.td b/include/vast/Dialect/Core/CoreAttributes.td index c532856c22..8cef6bf656 100644 --- a/include/vast/Dialect/Core/CoreAttributes.td +++ b/include/vast/Dialect/Core/CoreAttributes.td @@ -14,6 +14,18 @@ class Core_Attr traits = []> let mnemonic = attr_mnemonic; } +class Core_I32Enum cases> + : I32EnumAttr +{ + let genSpecializedAttr = 0; + let cppNamespace = "::vast::core"; +} +class Core_I32EnumAttr + : EnumAttr +{ + let assemblyFormat = "`<` $value `>`"; +} + class APSIntParameter : AttrOrTypeParameter<"::llvm::APSInt", desc> { let comparator = [{ @@ -120,4 +132,6 @@ def SourceLanguageAttr : EnumAttr< Core_Dialect, SourceLanguage, "lang" > { }]; } +include "vast/Dialect/Core/Linkage.td" + #endif // VAST_DIALECT_CORE_COREATTRIBUTES diff --git a/include/vast/Dialect/Core/Linkage.td b/include/vast/Dialect/Core/Linkage.td index 5d3d409fa4..3df209684a 100644 --- a/include/vast/Dialect/Core/Linkage.td +++ b/include/vast/Dialect/Core/Linkage.td @@ -45,7 +45,7 @@ def Global_ExternalWeakLinkage : def Global_CommonLinkage : I32EnumAttrCase<"CommonLinkage", 10, "common">; -def GlobalLinkageKind : I32EnumAttr< +def Core_GlobalLinkageKind : Core_I32Enum< "GlobalLinkageKind", "Linkage type/kind", [ Global_ExternalLinkage, Global_AvailableExternallyLinkage, @@ -54,8 +54,10 @@ def GlobalLinkageKind : I32EnumAttr< Global_PrivateLinkage, Global_ExternalWeakLinkage, Global_CommonLinkage, Global_AppendingLinkage ]> -{ - let cppNamespace = "::vast::core"; -} +{} + +def Core_GlobalLinkageKindAttr : Core_I32EnumAttr< + "global_linkage_kind", Core_GlobalLinkageKind +>; #endif // VAST_DIALECT_CORE_IR_LINKAGE diff --git a/include/vast/Dialect/LowLevel/LowLevelOps.hpp b/include/vast/Dialect/LowLevel/LowLevelOps.hpp index bb1e405716..b30378537d 100644 --- a/include/vast/Dialect/LowLevel/LowLevelOps.hpp +++ b/include/vast/Dialect/LowLevel/LowLevelOps.hpp @@ -19,8 +19,8 @@ VAST_RELAX_WARNINGS #include "vast/Interfaces/SymbolInterface.hpp" #include "vast/Dialect/Core/CoreTypes.hpp" +#include "vast/Dialect/Core/CoreAttributes.hpp" #include "vast/Util/Common.hpp" #define GET_OP_CLASSES #include "vast/Dialect/LowLevel/LowLevel.h.inc" -