@@ -843,7 +843,8 @@ def EmitC_LValueLoadOp : EmitC_Op<"lvalue_load", [
843843 let summary = "load an lvalue by assigning it to a local variable";
844844 let description = [{}];
845845
846- let arguments = (ins EmitC_LValueType:$operand);
846+ let arguments = (ins
847+ Res<EmitC_LValueType, "", [MemRead<DefaultResource, 0, FullEffect>]>:$operand);
847848 let results = (outs AnyType:$result);
848849
849850 let assemblyFormat = "$operand attr-dict `:` type($operand)";
@@ -1023,7 +1024,8 @@ def EmitC_VariableOp : EmitC_Op<"variable", []> {
10231024 }];
10241025
10251026 let arguments = (ins EmitC_OpaqueOrTypedAttr:$value);
1026- let results = (outs AnyTypeOf<[EmitC_ArrayType, EmitC_LValueType]>);
1027+ let results = (outs Res<AnyTypeOf<[EmitC_ArrayType, EmitC_LValueType]>, "",
1028+ [MemAlloc<DefaultResource, 0, FullEffect>]>:$memref);
10271029
10281030 let hasVerifier = 1;
10291031}
@@ -1151,7 +1153,9 @@ def EmitC_AssignOp : EmitC_Op<"assign", []> {
11511153 ```
11521154 }];
11531155
1154- let arguments = (ins EmitC_LValueType:$var, EmitCType:$value);
1156+ let arguments = (ins
1157+ Res<EmitC_LValueType, "", [MemWrite<DefaultResource, 1, FullEffect>]>:$var,
1158+ Res<EmitCType, "", [MemRead<DefaultResource, 0, FullEffect>]>:$value);
11551159 let results = (outs);
11561160
11571161 let hasVerifier = 1;
0 commit comments