[all-commits] [llvm/llvm-project] 2bdfcf: GlobalISel: Move AArch64 AssignFnVarArg to base class

Matt Arsenault via All-commits all-commits at lists.llvm.org
Tue May 11 17:10:02 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2bdfcf0cac148ada8d3ec36f551c45efb604ac49
      https://github.com/llvm/llvm-project/commit/2bdfcf0cac148ada8d3ec36f551c45efb604ac49
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2021-05-11 (Tue, 11 May 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
    M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp

  Log Message:
  -----------
  GlobalISel: Move AArch64 AssignFnVarArg to base class

We can handle the distinction easily enough in the generic code, and
this makes it easier to abstract the selection of type/location from
the code to insert code.


  Commit: 24e2e5df0e7eb017c64142c1f5899146fa52abba
      https://github.com/llvm/llvm-project/commit/24e2e5df0e7eb017c64142c1f5899146fa52abba
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2021-05-11 (Tue, 11 May 2021)

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

  Log Message:
  -----------
  GlobalISel: Split ValueHandler into assignment and emission classes

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.


Compare: https://github.com/llvm/llvm-project/compare/fec294599894...24e2e5df0e7e


More information about the All-commits mailing list