koparasy wrote: > @koparasy, I don't understand what this PR is intended to do. The title seems > misleading since the changes don't actually add a new target. The > added/modified tests accept existing targets but change their behavior based > on the `-fexperimental-abi-lowering` option. Why is that desirable as opposed > to specifying the ABI via the environment component of the target triple? I > don't feel particularly well qualified to review these changes. Maybe they > make sense to someone with more ABI expertise, but I can't really tell what > this is trying to accomplish.
Thanks for taking a look. The title and description assumed too much context. I modified both. In short: This doesn't add a new Clang target or a new ABI. llvm/lib/ABI. This is a new library that the existing ABI lowering in Clang's `CodeGen/Targets/*.cpp` is being moved into, so that frontends other than Clang's CodeGen (ClangIR first) can reuse it. Each target in that library is a port of the corresponding Clang `ABIInfo`; this PR adds some partial SPIR/SPIR-V port, following X86 and others. `-fexperimental-abi-lowering` is the existing `cc1` switch that makes Clang classify arguments with the library instead of its own (original) `ABIInfo`. It's for choosing the implementation of the ABI support and testing the port. It is not for choosing an ABI. Both paths have to give exactly the same IR, and that's what the tests check: every new RUN line with the flag uses the same FileCheck prefixes as the RUN line without it. That's also why the triple's environment component doesn't come into it: the ABI doesn't change, only which code computes it. No worries if this isn't your area. https://github.com/llvm/llvm-project/pull/224699 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
