[clang] [clang] Limit alignment for emitted vectors (PR #98629)

Phoebe Wang via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 12 19:07:03 PDT 2024


phoebewang wrote:

> > max aligment [...] LLVM Verifier accepts is 2^14
> 
> The verifier limit in most places is 2^32. It looks like 2^14 is specifically for ByVal. And there isn't really any good reason for that limit; it was arbitrarily chosen in [66011c1](https://github.com/llvm/llvm-project/commit/66011c17d539d1ec93a145d7db6c0381494a826f), nearly two decades ago, and could easily be changed if we want.
> 
> Can we just fix the backend so ByVal has the same alignment limit as everything else? I really don't want the complexity of multiple different alignment limits here.

I think the intention is to reduce the size of ArgFlagsTy. The super large alignment isn't meaningful to any targets. Maybe we can reduce the other limitation to 2^14 as well?
Another alternative suggested by @nikic was to use the free bits in PointerAddrSpace. If we use e.g. 5bits, we can limit it to 2^31, but still smaller than 2^32.

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


More information about the cfe-commits mailing list