Reland "[regalloc] Place spill instructions optimally"
This is a reland of f4548e75 Original change's description: > [regalloc] Place spill instructions optimally > > Design doc: > https://docs.google.com/document/d/1n9ADWnDI-sw0OvdSmrthf61prmDqbDmQq-NSrQw2MVI/edit?usp=sharing > > Most of this change follows directly what is discussed in the design > document. A few other things are also changed: > > - PopulateReferenceMapsPhase is moved after ResolveControlFlowPhase so > that it can make use of the decision regarding whether a value is > spilled at its definition or later. > - SpillSlotLocator is removed. It was already somewhat confusing, > because the responsibility for marking blocks as needing frames was > split: in some cases they were marked by SpillSlotLocator, and in > other cases they were marked by CommitSpillsInDeferredBlocks. With > this change, that split responsibility would become yet more > confusing if we kept SpillSlotLocator for the values that are spilled > at their definition, so I propose a simpler rule that whatever code > adds the spill move also marks the block. > - A few class definitions (LiveRangeBound, FindResult, > LiveRangeBoundArray, and LiveRangeFinder) are moved without > modification from register-allocator.cc to register-allocator.h so > that we can refer to them from another cc file. > > Bug: v8:10606 > Change-Id: I374a3219a5de477a53bc48117e230287eae89e72 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2285390 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69345} Bug: v8:10606 Change-Id: I10fc1ef4b0bebb6c9f55ebdefe33e8c1e5646f0a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352483 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#69427}
Showing
This diff is collapsed.
This diff is collapsed.
Please
register
or
sign in
to comment