[PATCH] D83417: GlobalISel: Restructure argument lowering loop in handleAssignments

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 10 16:18:48 PDT 2020


aemerson added a comment.

I don't think we should be changing the extending behavior for memlocs.

Just for the varargs case in Darwin, there's lots of code out there which incorrectly try to interpret a sub 64bit incoming varargs parameter as a 64 bit value. Although it should be technically correct to emit a smaller store, what happens in practice is that this code breaks for very hard to detect reasons (i.e. you no longer get a free zeroing of the upper bits of the stack slot). In arm64 we could force this to always explicitly zero-extend to 64 bits but that incurs a penalty at the call site.

It's unfortunate but copying the DAG behavior here is likely to cause less pain.


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

https://reviews.llvm.org/D83417





More information about the llvm-commits mailing list