• Seth Brenith's avatar
    Reland "[regalloc] Place spill instructions optimally" · 2f809531
    Seth Brenith authored
    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: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69427}
    2f809531
spill-placer.h 7.08 KB