diff --git a/include/Adt/AdtDialect.h b/include/Adt/AdtDialect.h index 8b5cdcd7a3fc85c16ac13c3265f64d6b277b0b74..b310803008b83c9f73be3cf926b3d1614d4e0521 100644 --- a/include/Adt/AdtDialect.h +++ b/include/Adt/AdtDialect.h @@ -13,7 +13,8 @@ namespace mlir::adt{ #define GET_OP_CLASSES -#include "../../build/include/Adt/AdtOpsDialect.h.inc" +#include "Adt/AdtOps.h.inc" +#include "Adt/AdtOpsDialect.h.inc" /// This class defines the adt source types. diff --git a/include/Adt/AdtOps.td b/include/Adt/AdtOps.td index 88d0862b3cdd30c59a781dd19b1c65a40ddb8786..ee3dedb6e56c3faf589e38a2421a0dc5fec84715 100644 --- a/include/Adt/AdtOps.td +++ b/include/Adt/AdtOps.td @@ -2,7 +2,11 @@ #define ADT_OPS include "mlir/IR/OpBase.td" - +include "mlir/Interfaces/CallInterfaces.td" +include "mlir/Interfaces/CastInterfaces.td" +include "mlir/Interfaces/SideEffectInterfaces.td" +include "mlir/IR/BuiltinAttributes.td" +include "mlir/IR/BuiltinAttributeInterfaces.td" //===----------------------------------------------------------------------------------------===// // Adt dialect definition. //==-----------------------------------------------------------------------------------------===// @@ -32,5 +36,16 @@ def Adt_TypeSource : // Provide a definition of the types that are used within the Toy dialect. def Toy_Type : AnyTypeOf<[Adt_TypeSource]>; - +// Providing a definition of the operation used with our dialect. +//===----------------------------------------------------------------------===// +// TypeConstantOp +//===----------------------------------------------------------------------===// +def TypeConstantOp : Adt_Op<"type_constant",[Pure]>{ + let summary = "type constant"; + let description = [{ + Turning a type declaration into an instance. + }]; + let arguments = (ins Builtin_StringAttr:$value); + let results = (outs Adt_TypeSource:$output); +} #endif // ADT_OPS \ No newline at end of file diff --git a/lib/Adt/AdtDialect.cpp b/lib/Adt/AdtDialect.cpp index be0a8ccb0680568faa659b7f3297523c899371e1..83439e16c99e25bc3242121eee5aa5654a041dcd 100644 --- a/lib/Adt/AdtDialect.cpp +++ b/lib/Adt/AdtDialect.cpp @@ -80,12 +80,12 @@ class SumType : public TypeSource{ }; #define GET_OP_CLASSES -#include "../build/include/Adt/AdtOpsDialect.cpp.inc" +#include "Adt/AdtOps.cpp.inc" void AdtDialect::initialize() { addOperations< #define GET_OP_LIST -#include "../build/include/Adt/AdtOps.cpp.inc" +#include "Adt/AdtOps.cpp.inc" >(); addTypes<TypeSource>(); }