[all-commits] [llvm/llvm-project] 78b6d7: AMDGPU: Add even aligned VGPR/AGPR register classes

Matt Arsenault via All-commits all-commits at lists.llvm.org
Wed Feb 24 12:07:31 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 78b6d73a93fc6085d2a2fc84bdce1bbde740cf16
      https://github.com/llvm/llvm-project/commit/78b6d73a93fc6085d2a2fc84bdce1bbde740cf16
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2021-02-24 (Wed, 24 Feb 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstructions.td
    M llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.h
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.td
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.fadd.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.fadd.ll
    A llvm/test/CodeGen/AMDGPU/alloc-aligned-tuples-gfx908.mir
    A llvm/test/CodeGen/AMDGPU/alloc-aligned-tuples-gfx90a.mir
    M llvm/test/CodeGen/AMDGPU/dpp64_combine.mir
    M llvm/test/CodeGen/AMDGPU/inline-asm.i128.ll
    M llvm/test/CodeGen/AMDGPU/merge-load-store-agpr.mir
    M llvm/test/CodeGen/AMDGPU/reserved-reg-in-clause.mir
    R llvm/test/CodeGen/AMDGPU/reserved-vgpr-tuples.mir
    M llvm/test/CodeGen/AMDGPU/twoaddr-fma-f64.mir
    A llvm/test/CodeGen/AMDGPU/verify-gfx90a-aligned-vgprs.mir

  Log Message:
  -----------
  AMDGPU: Add even aligned VGPR/AGPR register classes

gfx90a operations require even aligned registers, but this was
previously achieved by reserving registers inside the full class.

Ideally this would be captured in the static instruction definitions
for the operands, and we would have different instructions per
subtarget. The hackiest part of this is we need to manually reassign
AGPR register classes after instruction selection (we get away without
this for VGPRs since those types are actually registered for legal
types).


  Commit: 589223e044dbea0554d2e8b54bf49e9cc278b643
      https://github.com/llvm/llvm-project/commit/589223e044dbea0554d2e8b54bf49e9cc278b643
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2021-02-24 (Wed, 24 Feb 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/test/CodeGen/AMDGPU/coalesce-vgpr-alignment.ll
    M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
    M llvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.dim.gfx90a.ll

  Log Message:
  -----------
  AMDGPU: Remove special case in shouldCoalesce

Unaligned registers are now constrained with classes, rather than
specially reserving a subset of the whole class.


Compare: https://github.com/llvm/llvm-project/compare/e79cd47e1620...589223e044db


More information about the All-commits mailing list