[Mlir-commits] [mlir] [mlir][emitC] Add support to emitter for `classop`, `fieldop` and `getfieldop` (PR #145605)

Jacques Pienaar llvmlistbot at llvm.org
Tue Jun 24 22:37:45 PDT 2025


================
@@ -0,0 +1,36 @@
+// RUN: mlir-translate --mlir-to-cpp %s | FileCheck %s
+
+emitc.class @modelClass {
+    emitc.field @input_tensor : !emitc.array<1xf32> 
+    emitc.field @some_feature : !emitc.array<1xf32>  {emitc.opaque = ["some_feature"]}
+    emitc.func @execute() {
+        %0 = "emitc.constant"() <{value = 0 : index}> : () -> !emitc.size_t
+        %1 = get_field @input_tensor : !emitc.array<1xf32>
+        %2 = get_field @some_feature : !emitc.array<1xf32>
+        %3 = subscript %1[%0] : (!emitc.array<1xf32>, !emitc.size_t) -> !emitc.lvalue<f32>
+        return
+    }
+}
+
+// CHECK: class modelClass final {
+// CHECK-NEXT: public:
+// CHECK-EMPTY:
+// CHECK-NEXT:  const std::map<std::string, char*> _buffer_map {
+// CHECK-NEXT:    { "input_tensor", reinterpret_cast<char*>(&None) },
+// CHECK-NEXT:    { "some_feature", reinterpret_cast<char*>(&{emitc.opaque = ["some_feature"]}) }, 
----------------
jpienaar wrote:

These don't look correct.

https://github.com/llvm/llvm-project/pull/145605


More information about the Mlir-commits mailing list