Reviewers: Benedikt Meurer, jarin, stichnot, jvoung,

https://codereview.chromium.org/1242123006/diff/40001/src/compiler/register-allocator.cc
File src/compiler/register-allocator.cc (right):

https://codereview.chromium.org/1242123006/diff/40001/src/compiler/register-allocator.cc#newcode356
src/compiler/register-allocator.cc:356: InstructionBlock* start_block =
code->GetInstructionBlock(first_instr);
We may actually want to further restrict enabling this by requiring the
end of the spilled range is also in the same block, or at least the
whole range lives across deferred blocks.

Description:
This is the first step to enabling optimal handling of spills in deferred
blocks. Currently, the feature is limited to ranges that spill just in such a block. This avoids, at this point, complexities around connecting live ranges
and control flow.

The heuristic consists of:
- a general purpose splitting heuristic - split before a call and until the
first position needing a register (note: we may want to change this later to
fill in a "good" place, i.e. ensure we don't fill in a loop). This is general
purpose because it should provide value even in non-deferred block scenarios

- a detection of "deferred block splitting", when committing assignments.

BUG=

Please review this at https://codereview.chromium.org/1242123006/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+212, -18 lines):
  M src/compiler/greedy-allocator.cc
  M src/compiler/register-allocator.h
  M src/compiler/register-allocator.cc
  M test/unittests/compiler/instruction-sequence-unittest.h
  M test/unittests/compiler/instruction-sequence-unittest.cc
  M test/unittests/compiler/register-allocator-unittest.cc


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to