[all-commits] [llvm/llvm-project] dbed43: [LiveIntervals] Find better anchoring end points w...

Jay Foad via All-commits all-commits at lists.llvm.org
Mon Jul 18 11:37:41 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: dbed4326dd9c94437a944882f534e2cb91267526
      https://github.com/llvm/llvm-project/commit/dbed4326dd9c94437a944882f534e2cb91267526
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2022-07-18 (Mon, 18 Jul 2022)

  Changed paths:
    M llvm/lib/CodeGen/LiveIntervals.cpp
    M llvm/lib/CodeGen/SlotIndexes.cpp
    M llvm/test/CodeGen/Hexagon/mulhs.ll
    M llvm/unittests/MI/LiveIntervalTest.cpp

  Log Message:
  -----------
  [LiveIntervals] Find better anchoring end points when repairing ranges

r175673 changed repairIntervalsInRange to find anchoring end points for
ranges automatically, but the calculation of Begin included the first
instruction found that already had an index. This patch changes it to
exclude that instruction:

1. For symmetry, so that the half open range [Begin,End) only includes
   instructions that do not already have indexes.
2. As a possible performance improvement, since repairOldRegInRange
   will scan fewer instructions.
3. Because repairOldRegInRange hits assertion failures in some cases
   when it sees a def that already has a live interval.

(3) fixes about ten tests in the CodeGen lit test suite when
-early-live-intervals is forced on.

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




More information about the All-commits mailing list