[all-commits] [llvm/llvm-project] 0cf09f: TwoAddressInstructions: Move the rescheduled copy ...

Matt Arsenault via All-commits all-commits at lists.llvm.org
Tue Sep 29 07:12:08 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0cf09fc077d86dd454a58a292da8c047efe64af9
      https://github.com/llvm/llvm-project/commit/0cf09fc077d86dd454a58a292da8c047efe64af9
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-09-29 (Tue, 29 Sep 2026)

  Changed paths:
    M llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
    A llvm/test/CodeGen/X86/twoaddr-reschedule-copy-chain.mir

  Log Message:
  -----------
  TwoAddressInstructions: Move the rescheduled copy chain back to front (#227289)

rescheduleMIBelowKill sinks an instruction below the kill of its tied
source, along with the run of copies that follows it. With LiveIntervals
the copies are spliced one at a time so handleMove sees a well-formed
block, but they were visited front to back and each inserted before the
previously moved one. This reversed them, and transiently moved a copy
below its use, asserting in handleMoveDown.

Walk them back to front instead, which also preserves the original
order.

Exposed by #225174, which made LiveIntervals available here by default.

Co-authored-by: Claude Opus 5 <noreply at anthropic.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