[all-commits] [llvm/llvm-project] 1ebbbf: [LoopUnrollRuntime] Allow indirect transition to d...

Yevgeny Rouban via All-commits all-commits at lists.llvm.org
Sun Jun 18 21:11:32 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1ebbbf1614cfdbf6d78f4f2a665cdea9cbb2beb8
      https://github.com/llvm/llvm-project/commit/1ebbbf1614cfdbf6d78f4f2a665cdea9cbb2beb8
  Author: Yevgeny Rouban <yrouban at azul.com>
  Date:   2023-06-19 (Mon, 19 Jun 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
    M llvm/test/Transforms/LoopUnroll/runtime-multiexit-heuristic.ll

  Log Message:
  -----------
  [LoopUnrollRuntime] Allow indirect transition to deopt non-latch exit blocks

Relax condition on runtime trip count unrolling loops with 1 non-latch exit
that leads to a deop block.

There are cases when the deopt blocks are common exits for different loops.
LoopSimplify pass splits such edges to the common deopting blocks to make
sure that all exit nodes of the loop only have predecessors that are inside
of the loop (See simplifyOneLoop()). This breaks the current condition for
unrolling. This patch allows the split transitive blocks that still lead to
the deopting blocks.

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




More information about the All-commits mailing list