|
|
Created:
4 years, 10 months ago by Mircea Trofin Modified:
4 years, 10 months ago CC:
v8-reviews_googlegroups.com Base URL:
https://chromium.googlesource.com/v8/v8.git@master Target Ref:
refs/pending/heads/master Project:
v8 Visibility:
Public. |
Description[turbofan] don't take hints from deferred blocks
We should prefer hints from operands in non-deferred blocks, else we
risk sideways moves on the hot path, just to accommodate the register
allocator's choice of register assignment in the deferred block.
BUG=chromium:578983
LOG=N
Committed: https://crrev.com/ac9f18274676baab2dc90c6f9431738c6e9c17d5
Cr-Commit-Position: refs/heads/master@{#34296}
Patch Set 1 : #
Total comments: 4
Patch Set 2 : #Messages
Total messages: 19 (10 generated)
Description was changed from ========== [turbofan] do not move away spills Do not move spills because that undoes the register allocator's optimizing decision. BUG= ========== to ========== [turbofan] don't take hints from deferred blocks We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG= ==========
mtrofin@chromium.org changed reviewers: + titzer@chromium.org
Patchset #1 (id:1) has been deleted
Patchset #1 (id:20001) has been deleted
mtrofin@chromium.org changed reviewers: + bmeurer@chromium.org, jarin@chromium.org
+MUC folks
lgtm https://codereview.chromium.org/1718223002/diff/40001/src/compiler/register-a... File src/compiler/register-allocator.cc (right): https://codereview.chromium.org/1718223002/diff/40001/src/compiler/register-a... src/compiler/register-allocator.cc:2200: const InstructionBlock::Predecessors& predecessors = block->predecessors(); Could you add a comment with an explanation here? ("Take the hint from some non-deferred predecessor." or some such)
lgtm
https://codereview.chromium.org/1718223002/diff/40001/src/compiler/register-a... File src/compiler/register-allocator.cc (right): https://codereview.chromium.org/1718223002/diff/40001/src/compiler/register-a... src/compiler/register-allocator.cc:2205: for (size_t i = 1; i < predecessors.size(); ++i) { Could also simplify to for (size_t i = 0; i < predecessors.size(); ++i) { if (!code()->InstructionBlockAt(predecessors[i])->IsDeferred()) { instr = ... ; break; } }
The CQ bit was checked by mtrofin@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from titzer@chromium.org, jarin@chromium.org Link to the patchset: https://codereview.chromium.org/1718223002/#ps60001 (title: " ")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1718223002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1718223002/60001
https://codereview.chromium.org/1718223002/diff/40001/src/compiler/register-a... File src/compiler/register-allocator.cc (right): https://codereview.chromium.org/1718223002/diff/40001/src/compiler/register-a... src/compiler/register-allocator.cc:2200: const InstructionBlock::Predecessors& predecessors = block->predecessors(); On 2016/02/25 11:13:42, Jarin wrote: > Could you add a comment with an explanation here? ("Take the hint from some > non-deferred predecessor." or some such) Done. https://codereview.chromium.org/1718223002/diff/40001/src/compiler/register-a... src/compiler/register-allocator.cc:2205: for (size_t i = 1; i < predecessors.size(); ++i) { On 2016/02/25 12:14:42, titzer wrote: > Could also simplify to > > for (size_t i = 0; i < predecessors.size(); ++i) { > if (!code()->InstructionBlockAt(predecessors[i])->IsDeferred()) { instr = ... > ; break; } > } Done.
Message was sent while issue was closed.
Description was changed from ========== [turbofan] don't take hints from deferred blocks We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG= ========== to ========== [turbofan] don't take hints from deferred blocks We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG= ==========
Message was sent while issue was closed.
Committed patchset #2 (id:60001)
Message was sent while issue was closed.
Description was changed from ========== [turbofan] don't take hints from deferred blocks We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG= ========== to ========== [turbofan] don't take hints from deferred blocks We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG= Committed: https://crrev.com/ac9f18274676baab2dc90c6f9431738c6e9c17d5 Cr-Commit-Position: refs/heads/master@{#34296} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/ac9f18274676baab2dc90c6f9431738c6e9c17d5 Cr-Commit-Position: refs/heads/master@{#34296}
Message was sent while issue was closed.
Description was changed from ========== [turbofan] don't take hints from deferred blocks We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG= Committed: https://crrev.com/ac9f18274676baab2dc90c6f9431738c6e9c17d5 Cr-Commit-Position: refs/heads/master@{#34296} ========== to ========== [turbofan] don't take hints from deferred blocks We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG=chromium:578983 LOG=N Committed: https://crrev.com/ac9f18274676baab2dc90c6f9431738c6e9c17d5 Cr-Commit-Position: refs/heads/master@{#34296} ========== |