Reviewers: fschneider,

Description:
Fix bug LAllocator::FindOptimalSplitPos: it was calculating start_block and
end_block incorrectly.

This bug does not affect correctness of allocation but can severely degrade it's
quality (cause spills in loop bodies).

Please review this at http://codereview.chromium.org/6901148/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/lithium-allocator.cc


Index: src/lithium-allocator.cc
diff --git a/src/lithium-allocator.cc b/src/lithium-allocator.cc
index a42d5223150d8a889ac6e07e24dfadc40459b418..b858cc04d2b3ff1b58f504eaa6911bf09dcc6833 100644
--- a/src/lithium-allocator.cc
+++ b/src/lithium-allocator.cc
@@ -2029,8 +2029,8 @@ LifetimePosition LAllocator::FindOptimalSplitPos(LifetimePosition start,
   // We have no choice
   if (start_instr == end_instr) return end;

-  HBasicBlock* end_block = GetBlock(start);
-  HBasicBlock* start_block = GetBlock(end);
+  HBasicBlock* start_block = GetBlock(start);
+  HBasicBlock* end_block = GetBlock(end);

   if (end_block == start_block) {
// The interval is split in the same basic block. Split at latest possible


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to