HomePhabricator

DAG: propagate whether an arg is a pointer for CallingConv decisions.

Authored by t.p.northover on Apr 15 2019, 5:03 AM.

Description

DAG: propagate whether an arg is a pointer for CallingConv decisions.

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, but it will be triggered when AArch64
backend support for ILP32 is added.

llvm-svn: 358398

Details

Committed
t.p.northoverApr 15 2019, 5:03 AM
Parents
rGabcade08b5d4: gn build: Merge r358390
Branches
Unknown
Tags
Unknown