Reviewers: Vyacheslav Egorov,
Description:
Fix a bug in the register allocator.
Avoid spilling a live range that has a register use at the next instruction.
The register use position has to be after the end of the next instruction so
that we don't end up trying to split a live range at the beginning.
BUG=105112
Please review this at http://codereview.chromium.org/8743011/
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
Affected files:
M src/lithium-allocator.cc
Index: src/lithium-allocator.cc
===================================================================
--- src/lithium-allocator.cc (revision 10091)
+++ src/lithium-allocator.cc (working copy)
@@ -234,7 +234,8 @@
// at the current or the immediate next position.
UsePosition* use_pos = NextRegisterPosition(pos);
if (use_pos == NULL) return true;
- return use_pos->pos().Value() > pos.NextInstruction().Value();
+ return
+ use_pos->pos().Value() >
pos.NextInstruction().InstructionEnd().Value();
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev