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

Reply via email to