Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(438)

Issue 12631012: Fixed register allocation corner case. (Closed)

Created:
7 years, 9 months ago by Sven Panne
Modified:
7 years, 9 months ago
CC:
v8-dev
Visibility:
Public.

Description

Fixed register allocation corner case. The predicate CanBeSpilled had a bug, prohibiting the necessary spilling and correct splitting of live ranges. Removed a redundant assertion immediately done by the callee anyway. Thanks to Slava for help with that issue and the entertaining historical background of the whole story... ;-) BUG=177883 Committed: http://code.google.com/p/v8/source/detail?r=13891

Patch Set 1 #

Patch Set 2 : Added regression test #

Total comments: 6

Patch Set 3 : Feedback #

Unified diffs Side-by-side diffs Delta from patch set Stats (+180 lines, -10 lines) Patch
M src/lithium-allocator.cc View 1 2 3 chunks +1 line, -10 lines 0 comments Download
A test/mjsunit/compiler/regress-177883.js View 1 2 1 chunk +179 lines, -0 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
Sven Panne
7 years, 9 months ago (2013-03-08 13:36:05 UTC) #1
Sven Panne
Added regression test.
7 years, 9 months ago (2013-03-11 08:03:23 UTC) #2
danno
lgtm with comments https://codereview.chromium.org/12631012/diff/3001/test/mjsunit/compiler/regress-177883.js File test/mjsunit/compiler/regress-177883.js (right): https://codereview.chromium.org/12631012/diff/3001/test/mjsunit/compiler/regress-177883.js#newcode48 test/mjsunit/compiler/regress-177883.js:48: return +(+HEAPF32[i1 >> 2] * +HEAPF32[i2 ...
7 years, 9 months ago (2013-03-11 08:39:57 UTC) #3
Vyacheslav Egorov (Chromium)
LGTM https://codereview.chromium.org/12631012/diff/3001/src/lithium-allocator.cc File src/lithium-allocator.cc (left): https://codereview.chromium.org/12631012/diff/3001/src/lithium-allocator.cc#oldcode1925 src/lithium-allocator.cc:1925: ASSERT(current->Start().Value() < register_use->pos().Value()); I wonder if we should ...
7 years, 9 months ago (2013-03-11 08:43:15 UTC) #4
Sven Panne
https://codereview.chromium.org/12631012/diff/3001/src/lithium-allocator.cc File src/lithium-allocator.cc (left): https://codereview.chromium.org/12631012/diff/3001/src/lithium-allocator.cc#oldcode1925 src/lithium-allocator.cc:1925: ASSERT(current->Start().Value() < register_use->pos().Value()); On 2013/03/11 08:43:15, Vyacheslav Egorov wrote: ...
7 years, 9 months ago (2013-03-11 09:48:03 UTC) #5
Sven Panne
Committed patchset #3 manually as r13891 (presubmit successful).
7 years, 9 months ago (2013-03-11 09:49:06 UTC) #6
Sven Panne
7 years, 9 months ago (2013-03-11 10:40:05 UTC) #7
Message was sent while issue was closed.
FYI: The test case is already not a test case anymore, my guess is that
https://code.google.com/p/v8/source/detail?r=13890 changed enough to make the
corner case disappear for the code at hand. We knew it was brittle, but that was
*fast*... :-[

Powered by Google App Engine
This is Rietveld 408576698