[Mlir-commits] [mlir] [mlir][EmitC] Remove restrictions on include op (PR #106953)

Marius Brehler llvmlistbot at llvm.org
Mon Sep 2 02:22:20 PDT 2024


https://github.com/marbre created https://github.com/llvm/llvm-project/pull/106953

An `emitc.include` should be usable even though the parent is not a ModuleOp. This requirement is therefor therefor.

>From 3f26ab61ff1b57afa868850987165934454fa8d1 Mon Sep 17 00:00:00 2001
From: Marius Brehler <marius.brehler at amd.com>
Date: Mon, 2 Sep 2024 09:13:58 +0000
Subject: [PATCH] [mlir][EmitC] Remove restrictions on include op

An `emitc.include` should be usable even though the parent is not a
ModuleOp. This requirement is therefor therefor.
---
 mlir/include/mlir/Dialect/EmitC/IR/EmitC.td | 2 +-
 mlir/test/Target/Cpp/common-cpp.mlir        | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/mlir/include/mlir/Dialect/EmitC/IR/EmitC.td b/mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
index 5122da599b4ce4..2c1ac27cfb8ff8 100644
--- a/mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
+++ b/mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
@@ -730,7 +730,7 @@ def EmitC_ReturnOp : EmitC_Op<"return", [Pure, HasParent<"FuncOp">,
 }
 
 def EmitC_IncludeOp
-    : EmitC_Op<"include", [HasParent<"ModuleOp">]> {
+    : EmitC_Op<"include", []> {
   let summary = "Include operation";
   let description = [{
     The `emitc.include` operation allows to define a source file inclusion via the
diff --git a/mlir/test/Target/Cpp/common-cpp.mlir b/mlir/test/Target/Cpp/common-cpp.mlir
index 2036a10e0cad15..45fef618621ccd 100644
--- a/mlir/test/Target/Cpp/common-cpp.mlir
+++ b/mlir/test/Target/Cpp/common-cpp.mlir
@@ -5,6 +5,13 @@ emitc.include "myheader.h"
 // CHECK: #include <myheader.h>
 emitc.include <"myheader.h">
 
+// CHECK: void test_include() {
+func.func @test_include() {
+  // CHECK: #include "myheader.h"
+  emitc.include "myheader.h"
+  return
+}
+
 // CHECK: void test_foo_print() {
 func.func @test_foo_print() {
   // CHECK: [[V1:[^ ]*]] = foo::constant({0, 1});



More information about the Mlir-commits mailing list