[all-commits] [llvm/llvm-project] 17092b: [SystemZ] XPLINK64: use AExt for 32-bit pointer fo...

Zibi Sarbinowski via All-commits all-commits at lists.llvm.org
Wed Sep 9 09:54:25 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 17092bd38d0d7a4c37d6bcbf6e96177d2aacbc43
      https://github.com/llvm/llvm-project/commit/17092bd38d0d7a4c37d6bcbf6e96177d2aacbc43
  Author: Zibi Sarbinowski <zibi at ca.ibm.com>
  Date:   2026-09-09 (Wed, 09 Sep 2026)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZCallingConv.h

  Log Message:
  -----------
  [SystemZ] XPLINK64: use AExt for 32-bit pointer formals (#222350)

CC_XPLINK64_Pointer was setting LocInfo=ZExt, promising the optimizer
that the caller had zero-extended bit 32. Evidence from Open XL 1.1 and
2.2 shows that callers do not consistently zero-extend `__ptr32`
arguments
-- Open XL 1.1 emits nothing on the caller side; Open XL 2.2 only
zero-extends in the explicit cast case. Every actual use of a 31-bit
pointer goes through `addrspacecast` which emits `LLGTR` to clear bit 32
at
the point of use, so no callee relies on the register being clean at the
parameter boundary. Change LocInfo to AExt to accurately reflect that
only the low 32 bits are valid.

Extracted from #206833 per reviewer request.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list