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

Issue 93803003: Fixed Lithium environment generation bug for captured objects (created (Closed)

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

Description

Fixed Lithium environment generation bug for captured objects (created by escape analysis). Added several tests that expose the bug. Summary: LCodegen::AddToTranslation assumes that Lithium environments are generated by depth-first traversal, but LChunkBuilder::CreateEnvironment was generating them in breadth-first fashion. This fixes the CreateEnvironment to traverse the captured objects depth-first. Note: It might be worth considering representing LEnvironment by a list with the same order as the serialized translation representation rather than having two lists with a subtle relationship between them (and then serialize in a slightly different order again). R=titzer@chromium.org, mstarzinger@chromium.org LOG=N BUG= Committed: https://code.google.com/p/v8/source/detail?r=18470

Patch Set 1 #

Total comments: 1

Patch Set 2 : Move common code from LChunkBuilder into a (new) base class #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+273 lines, -384 lines) Patch
M src/arm/lithium-arm.h View 1 5 chunks +4 lines, -12 lines 0 comments Download
M src/arm/lithium-arm.cc View 1 1 chunk +0 lines, -84 lines 0 comments Download
M src/ia32/lithium-ia32.h View 1 5 chunks +4 lines, -12 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 1 chunk +0 lines, -84 lines 0 comments Download
M src/lithium.h View 1 1 chunk +29 lines, -0 lines 0 comments Download
M src/lithium.cc View 1 1 chunk +133 lines, -0 lines 1 comment Download
M src/mips/lithium-mips.h View 1 5 chunks +4 lines, -12 lines 0 comments Download
M src/mips/lithium-mips.cc View 1 1 chunk +0 lines, -84 lines 0 comments Download
M src/x64/lithium-x64.h View 1 5 chunks +4 lines, -12 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 1 chunk +0 lines, -84 lines 0 comments Download
M test/mjsunit/compiler/escape-analysis.js View 1 chunk +95 lines, -0 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
Jarin
7 years ago (2013-12-20 12:10:52 UTC) #1
titzer
Even though we aren't officially on the hook for MIPS, this change seems sufficiently mechanical ...
7 years ago (2013-12-20 13:38:57 UTC) #2
Jarin
I have moved the common code to a newly created super class. Does it look ...
7 years ago (2013-12-20 16:39:10 UTC) #3
titzer
lgtm
6 years, 11 months ago (2014-01-07 09:17:40 UTC) #4
Jarin
Committed patchset #2 manually as r18470 (presubmit successful).
6 years, 11 months ago (2014-01-07 14:36:42 UTC) #5
Michael Starzinger
6 years, 11 months ago (2014-01-07 14:38:35 UTC) #6
Message was sent while issue was closed.
LGTM. Nice catch. I especially like the factoring out part.

https://codereview.chromium.org/93803003/diff/40001/src/lithium.cc
File src/lithium.cc (right):

https://codereview.chromium.org/93803003/diff/40001/src/lithium.cc#newcode535
src/lithium.cc:535: //   LEnvironment::Add*Object methods), we store the lengths
(number
nit: Indentation of comments is off.

Powered by Google App Engine
This is Rietveld 408576698