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

Issue 6839015: Relax assumptions about control flow in the hydrogen graph. (Closed)

Created:
9 years, 8 months ago by Kevin Millikin (Chromium)
Modified:
9 years, 7 months ago
Reviewers:
fschneider, danno
CC:
v8-dev
Visibility:
Public.

Description

Relax assumptions about control flow in the hydrogen graph. Previously we assumed that control was always live after visiting an expression, and that control was live to both basic block targets of an expression in a test context. Now we allow any expression to exit the graph. R=fschneider@chromium.org,danno@chromium.org Committed: http://code.google.com/p/v8/source/detail?r=7601

Patch Set 1 #

Total comments: 6

Patch Set 2 : Use CHECK_ALIVE in more places, remove unhelpful ASSERTs. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+407 lines, -290 lines) Patch
M src/hydrogen.cc View 1 120 chunks +407 lines, -290 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Kevin Millikin (Chromium)
I also redid the macros we use to bailout and check for bailout.
9 years, 8 months ago (2011-04-13 10:30:52 UTC) #1
fschneider
LGTM. http://codereview.chromium.org/6839015/diff/1/src/hydrogen.cc File src/hydrogen.cc (right): http://codereview.chromium.org/6839015/diff/1/src/hydrogen.cc#newcode4718 src/hydrogen.cc:4718: VisitForTypeOf(expr->expression()); CHECK_ALIVE(VisitForTypeOf(expr->expression())); http://codereview.chromium.org/6839015/diff/1/src/hydrogen.cc#newcode5133 src/hydrogen.cc:5133: VisitForTypeOf(left_unary->expression()); CHECK_ALIVE(left_unary->expression());
9 years, 8 months ago (2011-04-13 11:20:16 UTC) #2
Kevin Millikin (Chromium)
Thanks, changed it everywhere I could.
9 years, 8 months ago (2011-04-13 11:22:58 UTC) #3
danno
LGTM http://codereview.chromium.org/6839015/diff/1/src/hydrogen.cc File src/hydrogen.cc (right): http://codereview.chromium.org/6839015/diff/1/src/hydrogen.cc#newcode2277 src/hydrogen.cc:2277: if (scope->function() != NULL) return Bailout("named function expression"); ...
9 years, 8 months ago (2011-04-13 12:00:43 UTC) #4
Kevin Millikin (Chromium)
9 years, 8 months ago (2011-04-13 12:23:24 UTC) #5
http://codereview.chromium.org/6839015/diff/1/src/hydrogen.cc
File src/hydrogen.cc (right):

http://codereview.chromium.org/6839015/diff/1/src/hydrogen.cc#newcode2277
src/hydrogen.cc:2277: if (scope->function() != NULL) return Bailout("named
function expression");
On 2011/04/13 12:00:43, danno wrote:
> I didn't know this actually works, returning the result of a void function
call.
> Is this something done elsewhere in the code?

I'm not sure if it's done elsewhere, I can't think of a place (except a few I
fixed because they were accidental).

Here it seems fairly "principled".  If it makes you squeamish, compare it to the
macro :-)

http://codereview.chromium.org/6839015/diff/1/src/hydrogen.cc#newcode2808
src/hydrogen.cc:2808: ASSERT(!HasStackOverflow());
On 2011/04/13 12:00:43, danno wrote:
> Turn these three checks into a single check, like ASSERT(HasNotBailedOut())?

OK, I'll do that.

Powered by Google App Engine
This is Rietveld 408576698