[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