[PATCH] D101947: GlobalISel: Split ValueHandler into assignment and emission classes

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 5 14:19:19 PDT 2021


arsenm created this revision.
arsenm added reviewers: paquette, aemerson, dsanders, aditya_nandakumar, cdevadas, qcolombet, bogner.
Herald added subscribers: kerbowa, pengfei, hiraditya, rovka, nhaehnle, jvesely.
arsenm requested review of this revision.
Herald added a subscriber: wdng.
Herald added a project: LLVM.

Currently the ValueHandler handles both selecting the type and
location for arguments, as well as inserting instructions needed to
handle them. Split this so that the determination of the argument
handling is independent of the function state. Currently the checks
for tail call compatibility do not follow the full assignment logic,
so it misses cases where arguments require nontrivial legalization.

      

This should help avoid targets ending up in a buggy state where the
argument evaluation may change in different contexts.


https://reviews.llvm.org/D101947

Files:
  llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
  llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
  llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
  llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
  llvm/lib/Target/ARM/ARMCallLowering.cpp
  llvm/lib/Target/X86/X86CallLowering.cpp
  llvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101947.343191.patch
Type: text/x-patch
Size: 60592 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210505/bae0c40f/attachment.bin>


More information about the llvm-commits mailing list