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

Issue 6348016: Record the lazy deoptimization environmnent only at LLazyBailout-instructions... (Closed)

Created:
9 years, 11 months ago by fschneider
Modified:
9 years, 6 months ago
CC:
v8-dev
Visibility:
Public.

Description

Record the lazy deoptimization environmnent only at LLazyBailout-instructions. This saves one pointer per LIR instructions. The change relies on the fact that there is a LazyBailout instruction at all the places where we need to register a lazy deoptimization environment. Committed: http://code.google.com/p/v8/source/detail?r=6441

Patch Set 1 #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+13 lines, -44 lines) Patch
M src/ia32/lithium-codegen-ia32.cc View 1 chunk +10 lines, -6 lines 1 comment Download
M src/ia32/lithium-ia32.h View 4 chunks +0 lines, -17 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 3 chunks +3 lines, -21 lines 2 comments Download

Messages

Total messages: 3 (0 generated)
fschneider
Please have a look - I'm not yet sure if this is the right approach.
9 years, 11 months ago (2011-01-24 12:48:20 UTC) #1
Søren Thygesen Gjesse
LGTM http://codereview.chromium.org/6348016/diff/1/src/ia32/lithium-codegen-ia32.cc File src/ia32/lithium-codegen-ia32.cc (right): http://codereview.chromium.org/6348016/diff/1/src/ia32/lithium-codegen-ia32.cc#newcode419 src/ia32/lithium-codegen-ia32.cc:419: ASSERT(instructions_->at(current_instruction_ + 1)->IsGap()); As far as I remember ...
9 years, 11 months ago (2011-01-24 13:02:43 UTC) #2
Kevin Millikin (Chromium)
9 years, 11 months ago (2011-01-24 13:31:38 UTC) #3
One small question below:

http://codereview.chromium.org/6348016/diff/1/src/ia32/lithium-ia32.cc
File src/ia32/lithium-ia32.cc (right):

http://codereview.chromium.org/6348016/diff/1/src/ia32/lithium-ia32.cc#newcod...
src/ia32/lithium-ia32.cc:1861: if (pending_deoptimization_ast_id_ ==
instr->ast_id()) {
This should really be:

if (pending_deoptimization_ast_id_ != AstNode::kNoNumber) {
  ASSERT(pending_deoptimization_ast_id_ == instr->ast_id());
  ...

http://codereview.chromium.org/6348016/diff/1/src/ia32/lithium-ia32.cc#newcod...
src/ia32/lithium-ia32.cc:1863: LInstruction* result =
AssignEnvironment(lazy_bailout);
I'm worried that the uses in this environment appear to come after the gap the
precedes it, but the environment before the gap is the one that is recorded.

Is that a problem?

Powered by Google App Engine
This is Rietveld 408576698