[all-commits] [llvm/llvm-project] 0e1037: [SPIR-V] Strip convergence intrinsics before ISel ...

Nathan Gauër via All-commits all-commits at lists.llvm.org
Mon Jan 15 02:35:47 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0e1037edbf790478358eb11b373d356aefdbc7a6
      https://github.com/llvm/llvm-project/commit/0e1037edbf790478358eb11b373d356aefdbc7a6
  Author: Nathan Gauër <brioche at google.com>
  Date:   2024-01-15 (Mon, 15 Jan 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/CMakeLists.txt
    M llvm/lib/Target/SPIRV/SPIRV.h
    A llvm/lib/Target/SPIRV/SPIRVStripConvergentIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
    M llvm/test/CodeGen/SPIRV/scfg-add-pre-headers.ll

  Log Message:
  -----------
  [SPIR-V] Strip convergence intrinsics before ISel (#75948)

The structurizer will require the frontend to emit convergence
intrinsics. Once uses to restructurize the control-flow, those
intrinsics shall be removed, as they cannot be converted to
SPIR-V.

This commit adds a new pass to the SPIR-V backend which strips those
intrinsics.

Those 2 new steps are not limited to Vulkan as OpenCL could
also benefit from not crashing if a convertent operation is in
the IR (even though the frontend doesn't generate such intrinsics).

Signed-off-by: Nathan Gauër <brioche at google.com>




More information about the All-commits mailing list