phoebewang wrote:

> So the rule is essentially, you can only use fastcc if the caller and the 
> callee have the same target features?

Not necessarily the same feature. Target code can decide by itself. E.g., we 
only distinguish APX or not so far. If there are more in the future, we can 
classify them in legacy cluster, APX cluster, other new clusters etc.

> if we're going that route, I'd like to document it, and enforce it in a more 
> consistently.

Document updated.

> But I do care about other forms of consistency:

I think 1&3 are not real problems. `fastcc` are internal only calling 
convention within a module. So we don't have the consistency problem;

2 only happens when users use `__attribute__((target("xxxx")))`, but user 
cannot use a `xxxx` if it doesn't exist at all. As long as we define a new 
`fastcc` implementation together when defining the new feature, there won't be 
a problem.

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

Reply via email to