[all-commits] [llvm/llvm-project] 2db700: [AMDGPU] Add llvm.amdgcn.sched.barrier intrinsic

Austin Kerbow via All-commits all-commits at lists.llvm.org
Wed May 11 13:41:43 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2db700215a2eebce7358c0a81a3d52d0a9d4a997
      https://github.com/llvm/llvm-project/commit/2db700215a2eebce7358c0a81a3d52d0a9d4a997
  Author: Austin Kerbow <Austin.Kerbow at amd.com>
  Date:   2022-05-11 (Wed, 11 May 2022)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAMDGPU.def
    M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
    M clang/test/SemaOpenCL/builtins-amdgcn-error.cl
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstructions.td
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp
    M llvm/test/CodeGen/AMDGPU/hazard-pseudo-machineinstrs.mir
    A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.barrier.ll
    A llvm/test/CodeGen/AMDGPU/sched_barrier.mir

  Log Message:
  -----------
  [AMDGPU] Add llvm.amdgcn.sched.barrier intrinsic

Adds an intrinsic/builtin that can be used to fine tune scheduler behavior. If
there is a need to have highly optimized codegen and kernel developers have
knowledge of inter-wave runtime behavior which is unknown to the compiler this
builtin can be used to tune scheduling.

This intrinsic creates a barrier between scheduling regions. The immediate
parameter is a mask to determine the types of instructions that should be
prevented from crossing the sched_barrier. In this initial patch, there are only
two variations. A mask of 0 means that no instructions may be scheduled across
the sched_barrier. A mask of 1 means that non-memory, non-side-effect inducing
instructions may cross the sched_barrier.

Note that this intrinsic is only meant to work with the scheduling passes. Any
other transformations that may move code will not be impacted in the ways
described above.

Reviewed By: rampitec

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




More information about the All-commits mailing list