[PATCH] D58983: DAG: propagate whether an arg is a pointer for CallingConv decisions.

Tim Northover via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 5 10:18:13 PST 2019


t.p.northover created this revision.
Herald added subscribers: hiraditya, kristof.beyls, javed.absar, mcrosier.
Herald added a project: LLVM.

The arm64_32 ABI specifies that pointers (despite being 32-bits) should be zero-extended to 64-bits when passed in registers for efficiency reasons. This means that the SelectionDAG needs to be able to tell the backend that an argument was originally a pointer, which is implmented here.

Additionally, some memory intrinsics need to be declared as taking an i8* instead of an iPTR.

There should be no CodeGen change yet (so again no tests I'm afraid), but it will be triggered when AArch64 backend support for ILP32 is added.


Repository:
  rL LLVM

https://reviews.llvm.org/D58983

Files:
  llvm/include/llvm/CodeGen/TargetCallingConv.h
  llvm/include/llvm/Target/TargetCallingConv.td
  llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58983.189353.patch
Type: text/x-patch
Size: 5717 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190305/b86c5ee7/attachment.bin>


More information about the llvm-commits mailing list