[PATCH] D101010: [SystemZ] [z/OS] Add XPLINK64 Calling Convention to SystemZ

Neumann Hon via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 23 16:31:07 PDT 2021


Everybody0523 marked 7 inline comments as done.
Everybody0523 added inline comments.


================
Comment at: llvm/lib/Target/SystemZ/SystemZCallingConv.td:248
+  // before placing the parameters either on the stack or in registers
+  CCIfType<[i1, i8, i16, i32], CCPromoteToType<i64>>,
+
----------------
uweigand wrote:
> So a difference to Linux ABI code here is that in Linux we use CCIfExtend, i.e. the extension only happens if the argument is marked using "sext" or "zext" in the IR (which gets set from clang depending on the source type, or omitted e.g. if we're passing a struct in register that cannot be "extended" as such).    This code here calls CCPromoteToType unconditionally, so you'll get AnyExtend nodes in cases where there is no "sext" or "zext" marker.  Is this intended?
The clang front-end should generate sext/zext for those types anyways so we should be using CCIfExtend as well. Thanks!


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D101010/new/

https://reviews.llvm.org/D101010



More information about the llvm-commits mailing list