[all-commits] [llvm/llvm-project] 53326e: [SPIR-V] Fix block sorting with irreducible CFG (#...

Nathan Gauër via All-commits all-commits at lists.llvm.org
Thu Nov 28 04:43:19 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 53326ee0cf45fce3f80e2e98638dd27edb20c516
      https://github.com/llvm/llvm-project/commit/53326ee0cf45fce3f80e2e98638dd27edb20c516
  Author: Nathan Gauër <brioche at google.com>
  Date:   2024-11-28 (Thu, 28 Nov 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/test/CodeGen/SPIRV/branching/OpSwitchBranches.ll
    M llvm/test/CodeGen/SPIRV/branching/OpSwitchUnreachable.ll
    M llvm/test/CodeGen/SPIRV/branching/Two_OpSwitch_same_register.ll
    M llvm/test/CodeGen/SPIRV/branching/if-merging.ll
    M llvm/test/CodeGen/SPIRV/branching/if-non-merging.ll
    M llvm/test/CodeGen/SPIRV/instructions/ret-type.ll
    M llvm/test/CodeGen/SPIRV/structurizer/basic-if.ll
    M llvm/test/CodeGen/SPIRV/structurizer/basic-loop.ll
    M llvm/test/CodeGen/SPIRV/structurizer/basic-phi.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.cond-op.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.for.continue.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.for.nested.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.for.plain.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.for.short-circuited-cond.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.if.for.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.if.nested.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.return.early.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.switch.ifstmt.simple2.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.while.continue.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.while.nested.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.while.plain.ll
    M llvm/test/CodeGen/SPIRV/structurizer/cf.while.short-circuited-cond.ll
    M llvm/test/CodeGen/SPIRV/structurizer/condition-linear.ll
    M llvm/test/CodeGen/SPIRV/structurizer/do-continue.ll
    M llvm/test/CodeGen/SPIRV/structurizer/do-nested.ll
    M llvm/test/CodeGen/SPIRV/structurizer/do-plain.ll
    M llvm/test/CodeGen/SPIRV/structurizer/logical-or.ll
    M llvm/test/CodeGen/SPIRV/structurizer/loop-continue-split.ll
    M llvm/test/CodeGen/SPIRV/structurizer/merge-exit-simple-while-identity.ll
    M llvm/test/CodeGen/SPIRV/structurizer/return-early.ll
    M llvm/unittests/Target/SPIRV/CMakeLists.txt
    A llvm/unittests/Target/SPIRV/SPIRVSortBlocksTests.cpp

  Log Message:
  -----------
  [SPIR-V] Fix block sorting with irreducible CFG (#116996)

Block sorting was assuming reducible CFG. Meaning we always had a best
node to continue with. Irreducible CFG makes breaks this assumption, so
the algorithm looped indefinitely because no node was a valid candidate.

Fixes #116692

---------

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



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list