jhuber6 wrote:

> You can run into ABI issues within a single translation unit too because the 
> calling convention is dependent upon the caller's features. e.g. if `foo` is 
> marked `avx512f` and calls `baz` (with a 512-bit vector type), it will use 
> zmm registers. If in the same translation unit you have `bar` which doesn't 
> have any `avx512f` features and it calls `baz`, it will pass the argument on 
> the stack.
> 

Using `[[gnu::target]]` at all is already opening yourself up for massive ABI 
headaches. This use case of double-pumping the existing vector ABI in a single 
TU should be well defined and I don't think we should warn on it.

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

Reply via email to