arsenm wrote: > > > > Incrementing by align is just a bug, of course the size is the real > > > > value. Whether we want to continue wasting space is another > > > > not-correctness discussion > > > > > > > > > Struct padding is pretty universal, AMDGPU seems the odd one out here. I > > > wouldn't mind it so much if it didn't require me to know which vendor I > > > was dealing with in the RPC implementation, but I suppose I could store > > > that information somewhere if we want to use a compressed option and we > > > know it works. > > > > > > It's not about struct padding, but the base alignment. Any pointer > > increment should be alignTo(ptr + size, align), not += align. The += align > > won't even work for large structs > > Hm, that's what I'm doing in the `printf` implementation and it doesn't work > without that patch. When I look at the varargs struct it didn't have any > padding, which explained why `alignTo(ptr + size, align)` was wrong. So, I > was trying to do the following, `printf("%d%ld", 1, 1l)`. With this patch I > get the following,
For what IR? Is the small struct getting expanded into individual scalar pieces? https://github.com/llvm/llvm-project/pull/96370 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits