Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions include/Conversion/ConversionPasses.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@

namespace mlir {

// Passes defined in GraphPasses.td
// Passes defined in GraphPasses.td.
#define GEN_PASS_DECL
#include "Conversion/ConversionPasses.h.inc"

// Conversion passes
// Conversion passes.
std::unique_ptr<mlir::Pass> createLowerArithToNeuraPass();
std::unique_ptr<mlir::Pass> createLowerLlvmToNeuraPass();

Expand Down
8 changes: 8 additions & 0 deletions include/NeuraDialect/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Set TableGen include paths
set(MLIR_TABLEGEN_INCLUDES
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/include/NeuraDialect
${CMAKE_CURRENT_BINARY_DIR}/include/NeuraDialect
${MLIR_MAIN_INCLUDE_DIR}
${MLIR_INCLUDE_DIR})

add_mlir_dialect(Neura neura)

set(LLVM_TARGET_DEFINITIONS NeuraPasses.td)
Expand Down
1 change: 1 addition & 0 deletions include/NeuraDialect/Neura.td
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
include "NeuraDialect.td"
include "NeuraOps.td"
include "NeuraPasses.td"
include "NeuraTypes.td"

#endif // GRAPH_TD
31 changes: 24 additions & 7 deletions include/NeuraDialect/NeuraDialect.h
Original file line number Diff line number Diff line change
@@ -1,17 +1,34 @@
#ifndef NEURADIALECT_NEURADIALECT_H
#define NEURADIALECT_NEURADIALECT_H
#ifndef NEURA_DIALECT_H
#define NEURA_DIALECT_H

#include "mlir/IR/Dialect.h"
#include "mlir/IR/OpDefinition.h"

// Defines the export macro.
#ifdef _WIN32
#define NEURA_DIALECT_EXPORT __declspec(dllexport)
#define NEURA_DIALECT_EXPORT __declspec(dllexport)
#else
#define NEURA_DIALECT_EXPORT __attribute__((visibility("default")))
#define NEURA_DIALECT_EXPORT __attribute__((visibility("default")))
#endif

// Includes generated TableGen headers.
namespace mlir {
namespace neura {

// Forward declare before including generated code
class NeuraDialect;

} // end namespace neura
} // end namespace mlir

// Include the generated dialect declarations
#include "NeuraDialect/NeuraDialect.h.inc"

#endif // NEURADIALECT_NEURADIALECT_H
namespace mlir {
namespace neura {

// Declare additional methods for the generated dialect class
NEURA_DIALECT_EXPORT void registerNeuraDialect();

} // end namespace neura
} // end namespace mlir

#endif // NEURA_DIALECT_H
26 changes: 23 additions & 3 deletions include/NeuraDialect/NeuraDialect.td
Original file line number Diff line number Diff line change
@@ -1,13 +1,33 @@
// NeuraDialect.td - TableGen description of the dialect.
#ifndef NEURADIALECT_TD
#define NEURADIALECT_TD
#ifndef NEURA_DIALECT_TD
#define NEURA_DIALECT_TD

include "mlir/IR/OpBase.td"
include "mlir/IR/DialectBase.td"
include "mlir/IR/AttrTypeBase.td"

// First define the dialect
def NeuraDialect : Dialect {
let name = "neura";
let cppNamespace = "::mlir::neura";

let summary = "A dialect for the Neura compiler infrastructure.";
let description = [{
This dialect is used for representing Neura operations and types.
}];

let useDefaultTypePrinterParser = 0;
let useDefaultAttributePrinterParser = 0;

let extraClassDeclaration = [{
// Type parsing/printing
Type parseType(DialectAsmParser &parser) const override;
void printType(Type type, DialectAsmPrinter &printer) const override;

// Attribute parsing/printing
Attribute parseAttribute(DialectAsmParser &parser, Type type) const override;
void printAttribute(Attribute attr, DialectAsmPrinter &printer) const override;
}];
}

#endif // NEURADIALECT_TD
#endif // NEURA_DIALECT_TD
14 changes: 12 additions & 2 deletions include/NeuraDialect/NeuraOps.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,19 @@
#include "mlir/IR/DialectImplementation.h"
#include "mlir/IR/Builders.h"

#define GET_OP_CLASSES
// First includes the interface declarations.
#define GET_OP_INTERFACE_CLASSES
#include "NeuraDialect/Neura.h.inc"
#undef GET_OP_INTERFACE_CLASSES

// Then includes the op declarations.
#define GET_OP_DECLARATIONS
#include "NeuraDialect/Neura.h.inc"
#undef GET_OP_DECLARATIONS

// Additional definitions or includes can go here.
// Finally includes the op definitions.
#define GET_OP_CLASSES
#include "NeuraDialect/Neura.h.inc"
#undef GET_OP_CLASSES

#endif // NEURA_OPS_H
Loading