Skip to content

Commit

Permalink
[mlir][polynomial] split polynomial types tablegen (#92805)
Browse files Browse the repository at this point in the history
Similar to #92613, but for
types.

Co-authored-by: Jeremy Kun <j2kun@users.noreply.github.com>
  • Loading branch information
j2kun and j2kun authored May 20, 2024
1 parent c1d5cc9 commit 0da1a6c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 17 deletions.
19 changes: 2 additions & 17 deletions mlir/include/mlir/Dialect/Polynomial/IR/Polynomial.td
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//===- PolynomialOps.td - Polynomial dialect ---------------*- tablegen -*-===//
//===- Polynomial.td - Polynomial dialect ------------------*- tablegen -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
Expand All @@ -15,22 +15,7 @@ include "mlir/Interfaces/InferTypeOpInterface.td"
include "mlir/Interfaces/SideEffectInterfaces.td"
include "mlir/Dialect/Polynomial/IR/PolynomialDialect.td"
include "mlir/Dialect/Polynomial/IR/PolynomialAttributes.td"

class Polynomial_Type<string name, string typeMnemonic>
: TypeDef<Polynomial_Dialect, name> {
let mnemonic = typeMnemonic;
}

def Polynomial_PolynomialType : Polynomial_Type<"Polynomial", "polynomial"> {
let summary = "An element of a polynomial ring.";
let description = [{
A type for polynomials in a polynomial quotient ring.
}];
let parameters = (ins Polynomial_RingAttr:$ring);
let assemblyFormat = "`<` struct(params) `>`";
}

def PolynomialLike: TypeOrContainer<Polynomial_PolynomialType, "polynomial-like">;
include "mlir/Dialect/Polynomial/IR/PolynomialTypes.td"

class Polynomial_Op<string mnemonic, list<Trait> traits = []> :
Op<Polynomial_Dialect, mnemonic, traits # [Pure]> {
Expand Down
32 changes: 32 additions & 0 deletions mlir/include/mlir/Dialect/Polynomial/IR/PolynomialTypes.td
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
//===- PolynomialTypes.td - Polynomial types ---------------*- tablegen -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#ifndef POLYNOMIAL_TYPES
#define POLYNOMIAL_TYPES

include "mlir/Dialect/Polynomial/IR/PolynomialAttributes.td"
include "mlir/Dialect/Polynomial/IR/PolynomialDialect.td"

class Polynomial_Type<string name, string typeMnemonic>
: TypeDef<Polynomial_Dialect, name> {
let mnemonic = typeMnemonic;
}

def Polynomial_PolynomialType : Polynomial_Type<"Polynomial", "polynomial"> {
let summary = "An element of a polynomial ring.";
let description = [{
A type for polynomials in a polynomial quotient ring.
}];
let parameters = (ins Polynomial_RingAttr:$ring);
let assemblyFormat = "`<` struct(params) `>`";
}

def PolynomialLike: TypeOrContainer<Polynomial_PolynomialType, "polynomial-like">;


#endif // POLYNOMIAL_TYPES

0 comments on commit 0da1a6c

Please sign in to comment.