[all-commits] [llvm/llvm-project] a43d25: [ModuloSchedule] Fix terminator update when peeling.

Hendrik Greving via All-commits all-commits at lists.llvm.org
Mon Jun 6 12:52:55 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a43d25734a46788da47a1a3786b3cd2bca540a72
      https://github.com/llvm/llvm-project/commit/a43d25734a46788da47a1a3786b3cd2bca540a72
  Author: Hendrik Greving <hgreving at google.com>
  Date:   2022-06-06 (Mon, 06 Jun 2022)

  Changed paths:
    M llvm/lib/CodeGen/MachineLoopUtils.cpp
    M llvm/lib/CodeGen/ModuloSchedule.cpp

  Log Message:
  -----------
  [ModuloSchedule] Fix terminator update when peeling.

Fixes a bug of us not correctly updating the terminator of the loop's
preheader, if multiple terminating branch instructions are present.

This is tested through existing tests. The bug itself is hard or not
possible to get exposed with the upstream Hexagon backend, because
the machine pipeliner checks for an existing preheader, which is
defined as a block with only 1 edge into the header.

The condition of this bug is a block into the loop with more than 1
edge, and not every downstream target checks for an existing preheader.

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




More information about the All-commits mailing list