[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