[all-commits] [llvm/llvm-project] a2202f: AMDGPU/GlobalISel: Manually RegBankSelect copies

Matt Arsenault via All-commits all-commits at lists.llvm.org
Wed Mar 11 08:12:35 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a2202f6a3f1c596d805755c2221a5b5527a1416b
      https://github.com/llvm/llvm-project/commit/a2202f6a3f1c596d805755c2221a5b5527a1416b
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    A llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-copy.mir

  Log Message:
  -----------
  AMDGPU/GlobalISel: Manually RegBankSelect copies

This was failng on any pre-assigned copy to the VCC bank.

This is something of a workaround for the default implementation in
getInstrMappingImpl, and how it treats copy-like operations in
general.

Copy-like operations are considered to only have one result register
bank, rather than separate banks for each source like a normal
instruction. To avoid potentially mishandling reg_sequence with
impossible operand combinations, the generic implementation errors on
impossible costs. If the bank was already assigned, is treated it
as-if it were an unsatisfiable REG_SEQUENCE mapping. We really don't
get any value from any of what getInstrMappingImpl tries to do for
copies, so just directly emit the simple mapping we really want.




More information about the All-commits mailing list