[clang] [NFC] Remove getDefaultCallingConvention IsBuiltin (PR #145904)

Harald van Dijk via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 2 06:27:07 PDT 2025


hvdijk wrote:

> > Would it not still be important for that for RVV intrinsics?
> 
> Pretty sure we bypass all the normal calling convention lowering, in this context.

Ah, this is confusing. There's two types of RVV intrinsics that use this code. Many use `ManualCodegen` which indeed bypasses the normal calling convention lowering. But not all: for e.g. `vzext`, this results in a call to `@llvm.riscv.vzext.*` LLVM intrinsics and does use the calling convention. But then, the RISC-V calling convention attributes cannot be specified by command-line options to be the default calling convention, so it still doesn't actually make a difference at the moment.

So, I think `IsBuiltin=true` is currently set in all the right places, we should not change behavior.

> Really what I don't want happening is someone copy-pastes getTargetInfo().getDefaultCallingConv() because it looks right, and doesn't realize there another whole method they're supposed to use for things that aren't actually "builtins".

That makes sense. I amended `ASTContext::getDefaultCallingConvention`'s documentation to point out `getTargetInfo().getDefaultCallingConv()` in this PR, would it be acceptable if I likewise point out in the `TargetInfo::getDefaultCallingConv()` documentation when *not* to use it? At the moment, that documentation looks wrong anyway: it is documented as

```
  /// Gets the default calling convention for the given target and
  /// declaration context.
  virtual CallingConv getDefaultCallingConv() const {
    // Not all targets will specify an explicit calling convention that we can
    // express.  This will always do the right thing, even though it's not
    // an explicit calling convention.
    return CC_C;
  }
```

but there is no declaration context for it to take into account.

https://github.com/llvm/llvm-project/pull/145904


More information about the cfe-commits mailing list