[all-commits] [llvm/llvm-project] 450192: Re-land ae4303b42c, "Track PHI values through regi...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Fri Jun 4 03:32:47 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4501928eb2fdec9af1908e008fa748924db0f688
      https://github.com/llvm/llvm-project/commit/4501928eb2fdec9af1908e008fa748924db0f688
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2021-06-04 (Fri, 04 Jun 2021)

  Changed paths:
    M llvm/lib/CodeGen/RegisterCoalescer.cpp
    A llvm/test/DebugInfo/MIR/InstrRef/phi-coalesce-subreg.mir
    A llvm/test/DebugInfo/MIR/InstrRef/phi-coalescing.mir

  Log Message:
  -----------
  Re-land ae4303b42c, "Track PHI values through register coalescing"

Was reverted in 0507fc2ffc9, in phi-coalesce-subreg.mir I'd explicitly named
some passes to run instead of specifying a range. As a result some
two-address-instrs weren't correctly rewritten and the verifier got upset.
Original commit message:

[DebugInstrRef][2/3] Track PHI values through register coalescing

In the instruction referencing variable location model, we store variable
locations that point at PHIs in MachineFunction during register allocation.
Unfortunately, register coalescing can substantially change the locations
of registers, and so that PHI-variable-location side table needs
maintenence during the pass.

This patch builds an index from the side table, and whenever a vreg gets
coalesced into another vreg, update the index to record the new vreg that
the PHI happens in. It also accepts a limited range of subregister
coalescing, for example merging a subregister into a larger class.

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




More information about the All-commits mailing list