[clang] [mlir] [CIR] Honor the Direct coercion offset in x86_64 callconv lowering (PR #220724)

Andy Kaylor via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 8 16:55:06 PDT 2026


================
@@ -87,13 +94,22 @@ struct ArgClassification {
     return kind == other.kind && coercedType == other.coercedType &&
            indirectAlign == other.indirectAlign &&
            signExtend == other.signExtend && canFlatten == other.canFlatten &&
-           byVal == other.byVal;
+           byVal == other.byVal && directOffset == other.directOffset;
+  }
+
+  static ArgClassification getDirect() {
+    return getDirect(/*offset=*/0, /*coerced=*/nullptr);
   }
 
-  static ArgClassification getDirect(Type coerced = nullptr) {
+  static ArgClassification getDirect(unsigned offset, Type coerced) {
----------------
andykaylor wrote:

The other order makes more sense to me because that's the order used by Clang's `ABIArgInfo` and the LLVM ABI library's `ArgInfo`.

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


More information about the cfe-commits mailing list