-
Seth Brenith authored
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}
f4548e75