================ @@ -19,6 +19,11 @@ namespace llvm { +struct SVEStackSizes { ---------------- sdesmalen-arm wrote:
The only places where `SVEStackSizes` are used, are in the context of unsigned values (the function `setStackSizeSVE` and the variables `SVELocals` and `SVEStackSize`), except for the case where you chose to use `int64_t` for `SVELocals` and `SVEStackSize` even though their sizes are always non-negative. If the value can never be negative and it's only ever used in contexts where the derived value is never negative, then I think it should be an unsigned value. The size will at some point need converting to a signed offset, but that's already the case and the code that does the conversion from a size -> offset will need to guarantee the value does not overflow. Which brings me to the data-type `uint64_t`; other places for these sizes use `unsigned` at the moment, so if you change this to `unsigned`, then the conversion to `int64_t` (as used in `StackOffset`) will never result in a different signedness. https://github.com/llvm/llvm-project/pull/142391 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits