[clang] [llvm] [GlobalOpt] Add TTI interface useFastCCForInternalCall for FASTCC (PR #164768)

Phoebe Wang via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 30 21:24:52 PDT 2025


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


More information about the cfe-commits mailing list