[all-commits] [llvm/llvm-project] 79e77a: [AMDGPU] Flush the vmcnt counter in loop preheader...

bsaleil via All-commits all-commits at lists.llvm.org
Thu Jun 23 07:53:52 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 79e77a9f39f02a18e839f8138035c958b54e11a1
  Author: Baptiste Saleil <baptiste.saleil at amd.com>
  Date:   2022-06-23 (Thu, 23 Jun 2022)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    M llvm/test/CodeGen/AMDGPU/llc-pipeline.ll
    A llvm/test/CodeGen/AMDGPU/waitcnt-vmcnt-loop.mir

  Log Message:
  [AMDGPU] Flush the vmcnt counter in loop preheaders when necessary

waitcnt vmcnt instructions are currently generated in loop bodies before using
values loaded outside of the loop. In some cases, it is better to flush the
vmcnt counter in a loop preheader before entering the loop body. This patch
detects these cases and generates waitcnt instructions to flush the counter.

Reviewed By: foad

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

More information about the All-commits mailing list