diff --git a/paddle/infrt/dialect/infrt/infrt_ops_base.td b/paddle/infrt/dialect/infrt/infrt_ops_base.td index 81d3d028a66bea29dd9a373e1905ac02468251fd..978b126d754169e4f57fdd3b79fe49855c5d3359 100644 --- a/paddle/infrt/dialect/infrt/infrt_ops_base.td +++ b/paddle/infrt/dialect/infrt/infrt_ops_base.td @@ -40,6 +40,12 @@ def DenseTensor : Infrt_Type<"DenseTensor"> { ); } +// Type Constrait for concrete DenseTensor type. +class DenseTensor : + Type, + "!infrt.DenseTensor<"#target#","#precision#","#layout#">", + "::infrt::DenseTensorType">; + // Base class for infrt dialect attributes. class Infrt_Attr traits = [], string baseCppClass = "::mlir::Attribute"> diff --git a/paddle/infrt/dialect/init_infrt_dialects.cc b/paddle/infrt/dialect/init_infrt_dialects.cc index b5b8de7a20d0866802b8ce72e12dd7ed35dccbd1..c5c81b4b0f22dd369d7b63d34f45c41897052185 100644 --- a/paddle/infrt/dialect/init_infrt_dialects.cc +++ b/paddle/infrt/dialect/init_infrt_dialects.cc @@ -21,8 +21,8 @@ #include "paddle/infrt/dialect/infrt/infrt_dialect.h" #include "paddle/infrt/dialect/infrt_base.h" #include "paddle/infrt/dialect/pd_ops.h" -#include "paddle/infrt/dialect/phi/infrt_phi_tensor.h" -#include "paddle/infrt/dialect/phi/phi_base.h" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensor.h" +#include "paddle/infrt/dialect/phi/ir/phi_base.h" #include "paddle/infrt/dialect/tensor_shape.h" namespace infrt { diff --git a/paddle/infrt/dialect/phi/CMakeLists.txt b/paddle/infrt/dialect/phi/CMakeLists.txt index 626b02c1f790d0a7f38887be33dace1c773a2cb1..d477b6b9bdc278b2408794fa4235d9c8bca5850a 100644 --- a/paddle/infrt/dialect/phi/CMakeLists.txt +++ b/paddle/infrt/dialect/phi/CMakeLists.txt @@ -2,16 +2,7 @@ if (NOT INFRT_WITH_PHI) return() endif() -#mlir_tablegen_on(infrt_phi_base DIALECT phi) -add_mlir_dialect(infrt_phi_base phi) -add_mlir_dialect(infrt_phi_tensor phi_dt) -add_mlir_dialect(infrt_phi_kernel phi_kernel) -#mlir_tablegen_on(infrt_phi_tensor) - -gather_srcs(infrt_src SRCS - phi_base.cc infrt_phi_tensor.cc - infrt_phi_tensor.cc) - +add_subdirectory(ir) add_subdirectory(pass) add_executable(phi-exec phi_exec.cc) diff --git a/paddle/infrt/dialect/phi/ir/CMakeLists.txt b/paddle/infrt/dialect/phi/ir/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..8c1d75629d09c210f813cd994199da77ca48a3b8 --- /dev/null +++ b/paddle/infrt/dialect/phi/ir/CMakeLists.txt @@ -0,0 +1,9 @@ +#mlir_tablegen_on(infrt_phi_base DIALECT phi) +add_mlir_dialect(infrt_phi_base phi) +add_mlir_dialect(infrt_phi_tensor phi_dt) +add_mlir_dialect(infrt_phi_kernel phi_kernel) +#mlir_tablegen_on(infrt_phi_tensor) + +gather_srcs(infrt_src SRCS + phi_base.cc + infrt_phi_tensor.cc) diff --git a/paddle/infrt/dialect/phi/infrt_phi_base.td b/paddle/infrt/dialect/phi/ir/infrt_phi_base.td similarity index 100% rename from paddle/infrt/dialect/phi/infrt_phi_base.td rename to paddle/infrt/dialect/phi/ir/infrt_phi_base.td diff --git a/paddle/infrt/dialect/phi/infrt_phi_kernel.td b/paddle/infrt/dialect/phi/ir/infrt_phi_kernel.td similarity index 92% rename from paddle/infrt/dialect/phi/infrt_phi_kernel.td rename to paddle/infrt/dialect/phi/ir/infrt_phi_kernel.td index 879994907cc0d951bde838b23fd129e865a360f2..37bf0b5ef213d76613162aa9bb3d2f9b6324340e 100644 --- a/paddle/infrt/dialect/phi/infrt_phi_kernel.td +++ b/paddle/infrt/dialect/phi/ir/infrt_phi_kernel.td @@ -4,7 +4,7 @@ include "mlir/Interfaces/SideEffectInterfaces.td" include "mlir/IR/OpBase.td" include "paddle/infrt/dialect/infrt_base.td" -include "paddle/infrt/dialect/phi/infrt_phi_base.td" +include "paddle/infrt/dialect/phi/ir/infrt_phi_base.td" def PHI_KernelDialect : Dialect { let name = "phi_kernel"; diff --git a/paddle/infrt/dialect/phi/infrt_phi_tensor.cc b/paddle/infrt/dialect/phi/ir/infrt_phi_tensor.cc similarity index 71% rename from paddle/infrt/dialect/phi/infrt_phi_tensor.cc rename to paddle/infrt/dialect/phi/ir/infrt_phi_tensor.cc index 9df1a47031b1f726578291f628cda7d12900bcb7..64780294be92b86bcf29d3cb2045434cc6479517 100644 --- a/paddle/infrt/dialect/phi/infrt_phi_tensor.cc +++ b/paddle/infrt/dialect/phi/ir/infrt_phi_tensor.cc @@ -12,12 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/infrt/dialect/phi/infrt_phi_tensor.h" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensor.h" #include -#include "paddle/infrt/dialect/phi/infrt_phi_tensorDialect.cpp.inc" -#include "paddle/infrt/dialect/phi/infrt_phi_tensorTypes.cpp.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensorDialect.cpp.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensorTypes.cpp.inc" namespace infrt { namespace phi { @@ -25,7 +25,7 @@ namespace phi { void PHIDenseTensorDialect::initialize() { #define GET_OP_LIST addOperations< -#include "paddle/infrt/dialect/phi/infrt_phi_tensor.cpp.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensor.cpp.inc" >(); } @@ -33,4 +33,4 @@ void PHIDenseTensorDialect::initialize() { } // namespace infrt #define GET_OP_CLASSES -#include "paddle/infrt/dialect/phi/infrt_phi_tensor.cpp.inc" // NOLINT +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensor.cpp.inc" // NOLINT diff --git a/paddle/infrt/dialect/phi/infrt_phi_tensor.h b/paddle/infrt/dialect/phi/ir/infrt_phi_tensor.h similarity index 83% rename from paddle/infrt/dialect/phi/infrt_phi_tensor.h rename to paddle/infrt/dialect/phi/ir/infrt_phi_tensor.h index 2780f9759185ef45bc19f43fc621f46eabbe7a66..9a92558daab0376d430fe04b853a810cf42b6e85 100644 --- a/paddle/infrt/dialect/phi/infrt_phi_tensor.h +++ b/paddle/infrt/dialect/phi/ir/infrt_phi_tensor.h @@ -29,11 +29,11 @@ #include #include -#include "paddle/infrt/dialect/phi/infrt_phi_tensorDialect.h.inc" -#include "paddle/infrt/dialect/phi/infrt_phi_tensorTypes.h.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensorDialect.h.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensorTypes.h.inc" #include "paddle/infrt/dialect/dense_tensor.h" -#include "paddle/infrt/dialect/phi/phi_base.h" +#include "paddle/infrt/dialect/phi/ir/phi_base.h" // NOLINT #define GET_OP_CLASSES -#include "paddle/infrt/dialect/phi/infrt_phi_tensor.h.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_tensor.h.inc" diff --git a/paddle/infrt/dialect/phi/infrt_phi_tensor.td b/paddle/infrt/dialect/phi/ir/infrt_phi_tensor.td similarity index 97% rename from paddle/infrt/dialect/phi/infrt_phi_tensor.td rename to paddle/infrt/dialect/phi/ir/infrt_phi_tensor.td index b7b3b061fdbe42909ac503d9d387cb8aed6bdc1a..dc3a4b340d767a371bc411c0a58d1fc7c72ca83e 100644 --- a/paddle/infrt/dialect/phi/infrt_phi_tensor.td +++ b/paddle/infrt/dialect/phi/ir/infrt_phi_tensor.td @@ -2,7 +2,7 @@ #else #define PHI_TENSOR -include "paddle/infrt/dialect/phi/infrt_phi_base.td" +include "paddle/infrt/dialect/phi/ir/infrt_phi_base.td" include "mlir/Interfaces/SideEffectInterfaces.td" include "mlir/IR/OpBase.td" include "paddle/infrt/dialect/infrt_base.td" diff --git a/paddle/infrt/dialect/phi/phi_base.cc b/paddle/infrt/dialect/phi/ir/phi_base.cc similarity index 84% rename from paddle/infrt/dialect/phi/phi_base.cc rename to paddle/infrt/dialect/phi/ir/phi_base.cc index a1caa40f6383b5016a9e237733a0b3ef016cbc97..7a6b3f3f0a404043f49a6df3e5bdcb873dd442c9 100644 --- a/paddle/infrt/dialect/phi/phi_base.cc +++ b/paddle/infrt/dialect/phi/ir/phi_base.cc @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "paddle/infrt/dialect/phi/phi_base.h" +#include "paddle/infrt/dialect/phi/ir/phi_base.h" #include #include @@ -21,8 +21,8 @@ #include #include #include "paddle/infrt/common/global.h" -#include "paddle/infrt/dialect/phi/infrt_phi_base.cpp.inc" -#include "paddle/infrt/dialect/phi/infrt_phi_baseDialect.cpp.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_base.cpp.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_baseDialect.cpp.inc" namespace infrt { namespace phi { @@ -51,11 +51,11 @@ void PHIDialect::printType(::mlir::Type type, void PHIDialect::initialize() { addOperations< #define GET_OP_LIST -#include "paddle/infrt/dialect/phi/infrt_phi_base.cpp.inc" // NOLINT +#include "paddle/infrt/dialect/phi/ir/infrt_phi_base.cpp.inc" // NOLINT >(); addTypes< #define GET_TYPEDEF_LIST -#include "paddle/infrt/dialect/phi/infrt_phi_baseTypes.cpp.inc" // NOLINT +#include "paddle/infrt/dialect/phi/ir/infrt_phi_baseTypes.cpp.inc" // NOLINT >(); } @@ -81,4 +81,4 @@ mlir::Type PHIDialect::parseType(mlir::DialectAsmParser& parser) const { } // namespace infrt #define GET_TYPEDEF_CLASSES -#include "paddle/infrt/dialect/phi/infrt_phi_baseTypes.cpp.inc" // NOLINT +#include "paddle/infrt/dialect/phi/ir/infrt_phi_baseTypes.cpp.inc" // NOLINT diff --git a/paddle/infrt/dialect/phi/phi_base.h b/paddle/infrt/dialect/phi/ir/phi_base.h similarity index 84% rename from paddle/infrt/dialect/phi/phi_base.h rename to paddle/infrt/dialect/phi/ir/phi_base.h index 11174290f92bd18fdc91588d7eba89f61bb05413..a08d8229fccf53225311b451e941f99e8a3d0e8a 100644 --- a/paddle/infrt/dialect/phi/phi_base.h +++ b/paddle/infrt/dialect/phi/ir/phi_base.h @@ -19,11 +19,13 @@ #include -#include "paddle/infrt/dialect/phi/infrt_phi_base.h.inc" -#include "paddle/infrt/dialect/phi/infrt_phi_baseDialect.h.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_baseDialect.h.inc" #define GET_TYPEDEF_CLASSES -#include "paddle/infrt/dialect/phi/infrt_phi_baseTypes.h.inc" +#include "paddle/infrt/dialect/phi/ir/infrt_phi_baseTypes.h.inc" + +#define GET_OP_CLASSES +#include "paddle/infrt/dialect/phi/ir/infrt_phi_base.h.inc" namespace mlir { namespace OpTrait {