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
