[clang] [CIR] Emit calling convention on call sites (PR #230123)
Konstantinos Parasyris via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 8 13:50:09 PDT 2026
================
@@ -1405,9 +1402,9 @@ RValue CIRGenFunction::emitCall(const CIRGenFunctionInfo &funcInfo,
bool isInvoke = !cannotThrow && isCatchOrCleanupRequired();
mlir::Location callLoc = loc;
- cir::CIRCallOpInterface theCall =
- emitCallLikeOp(*this, loc, indirectFuncTy, indirectFuncVal, directFuncOp,
- cirCallArgs, isInvoke, attrs, argAttrs, retAttrs);
+ cir::CIRCallOpInterface theCall = emitCallLikeOp(
+ *this, loc, indirectFuncTy, indirectFuncVal, directFuncOp, cirCallArgs,
+ isInvoke, attrs, argAttrs, retAttrs, callingConv);
----------------
koparasy wrote:
Yes, the CIRGen side was already in place #214246 . We do not support all conventions though (see [here](https://github.com/llvm/llvm-project/pull/214246/changes#diff-5f0346826915728e1229a091e99e710480e9582b06a66f5ecac4070bef959068R757)) . I have kept the errors there since we will start having other issues since ABI support for non `CallingConv::C` ([here](https://github.com/llvm/llvm-project/blob/91dd66078a9321096e9de21ba035dedffe0a6c8a/llvm/lib/ABI/Targets/X86.cpp#L1327-L1340)) is missing.
As is now, AFAIU these work for these [conventions](https://github.com/llvm/llvm-project/blob/254f05a4807997ae410e157f1673c8c26020a88c/clang/include/clang/CIR/Dialect/IR/CIROps.td#L4234-L4240)
For all the reasons above I think either the scope of this PR will explode or we should leave other conventions (with their testing for some other PR later)
https://github.com/llvm/llvm-project/pull/230123
More information about the cfe-commits
mailing list