xlauko wrote:

> In that case we could keep the brackets as @erichkeane mentioned they stick 
> out nicely, drop the commas between flags and use `oilist` as @xlauko 
> suggested, and also move the alignment out of the attr-dict to make it look 
> closer to `llvm.alloca` as @andykaylor suggested and consistent with 
> `cir.store`:
> 
> ```mlir
>  %0 = cir.alloca !s32i, !cir.ptr<!s32i>, align(4) ["n" init const]
> ```
> 
> does that look good to all of you or do you have other suggestions?

So to be more uniform, we usually put attributes before operands (see e.g. 
load/store), types should be represented "funtional type, so you distinguish 
operand types and return types, i.e. to be uniform with the rest of the dialect:

```mlir
%0 = cir.alloca "n" align(4) init const %size : !s32i -> !cir.ptr<!s32i>
```

% maybe different order of unitattribute alignemnt and name?

this follows convention of other dialects too, e.g.

```mlir 
%0 = llvm.alloca inalloca %size x i32 : (i64) -> !llvm.ptr
```

I understand @erichkeane desire to make attributes more differentiable, but 
then question is why is alignment is at different place, why only this 
operation, why square brackets, which we use for "offset-like" information in 
other places? For newcomers and in general I find more valuable unsuprising 
choices.


https://github.com/llvm/llvm-project/pull/198962
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to