Skip to content

Commit

Permalink
core: Register linkage attribute.
Browse files Browse the repository at this point in the history
  • Loading branch information
xlauko committed Feb 2, 2024
1 parent 924a739 commit 1cb165a
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 7 deletions.
2 changes: 0 additions & 2 deletions include/vast/Dialect/Core/Core.td
Original file line number Diff line number Diff line change
Expand Up @@ -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
14 changes: 14 additions & 0 deletions include/vast/Dialect/Core/CoreAttributes.td
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,18 @@ class Core_Attr<string name, string attr_mnemonic, list<Trait> traits = []>
let mnemonic = attr_mnemonic;
}

class Core_I32Enum<string name, string description, list<I32EnumAttrCase> cases>
: I32EnumAttr<name, description, cases>
{
let genSpecializedAttr = 0;
let cppNamespace = "::vast::core";
}
class Core_I32EnumAttr<string mnemonic, Core_I32Enum enumInfo>
: EnumAttr<Core_Dialect, enumInfo, mnemonic>
{
let assemblyFormat = "`<` $value `>`";
}

class APSIntParameter<string desc> :
AttrOrTypeParameter<"::llvm::APSInt", desc> {
let comparator = [{
Expand Down Expand Up @@ -120,4 +132,6 @@ def SourceLanguageAttr : EnumAttr< Core_Dialect, SourceLanguage, "lang" > {
}];
}

include "vast/Dialect/Core/Linkage.td"

#endif // VAST_DIALECT_CORE_COREATTRIBUTES
10 changes: 6 additions & 4 deletions include/vast/Dialect/Core/Linkage.td
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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
2 changes: 1 addition & 1 deletion include/vast/Dialect/LowLevel/LowLevelOps.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"

0 comments on commit 1cb165a

Please sign in to comment.