[all-commits] [llvm/llvm-project] f4e8cf: [AMDGPU] Select no-return ds_* atomic ops in tblgen.

Abinav Puthan Purayil via All-commits all-commits at lists.llvm.org
Wed Feb 9 19:57:30 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f4e8cf25af3a4969619f4482339115aeda5abbce
      https://github.com/llvm/llvm-project/commit/f4e8cf25af3a4969619f4482339115aeda5abbce
  Author: Abinav Puthan Purayil <abinav.puthanpurayil at amd.com>
  Date:   2022-02-10 (Thu, 10 Feb 2022)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
    M llvm/lib/Target/AMDGPU/DSInstructions.td
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td

  Log Message:
  -----------
  [AMDGPU] Select no-return ds_* atomic ops in tblgen.

SelectionDAG relies on MachineInstr's HasPostISelHook for selecting the
no-return atomic ops. GlobalISel, at the moment, doesn't handle
HasPostISelHook.

This change adds the selection for no-return ds_* atomic ops in tblgen
so that it can work with both GlobalISel and SelectionDAG. I couldn't
add the predicates for GlobalISel in this change since there's a
restriction in GlobalISelEmitter that disallows selecting generic
atomics ops that return with instructions that doesn't return.

We can't remove the HasPostISelHook code that selects the no return
atomic ops in SelectionDAG yet since we still need to cover selections
in FLATInstructions.td, BUFInstructions.td.

Differential Revision: https://reviews.llvm.org/D115881




More information about the All-commits mailing list