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

Issue 3047027: Avoid GC when compiling CallIC stubs.... (Closed)

Created:
10 years, 4 months ago by Vladislav Kaznacheev
Modified:
9 years, 7 months ago
Reviewers:
antonm, Vitaly Repeshko
CC:
v8-dev
Visibility:
Public.

Description

Avoid GC when compiling CallIC stubs. In rare cases GC could be called from ComputeCallMiss function thus breaking CallIC::LoadFunction. Committed: http://code.google.com/p/v8/source/detail?r=5174

Patch Set 1 #

Total comments: 4

Patch Set 2 : '' #

Patch Set 3 : '' #

Total comments: 12

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+181 lines, -118 lines) Patch
M src/arm/stub-cache-arm.cc View 1 2 3 7 chunks +17 lines, -9 lines 0 comments Download
M src/heap.h View 3 4 chunks +23 lines, -0 lines 0 comments Download
M src/heap.cc View 3 4 5 2 chunks +4 lines, -0 lines 0 comments Download
M src/heap-inl.h View 3 1 chunk +6 lines, -0 lines 0 comments Download
M src/ia32/stub-cache-ia32.cc View 1 2 3 9 chunks +21 lines, -14 lines 0 comments Download
M src/ic.cc View 3 4 5 5 chunks +90 lines, -72 lines 0 comments Download
M src/stub-cache.h View 1 2 3 4 2 chunks +3 lines, -5 lines 0 comments Download
M src/stub-cache.cc View 1 2 3 1 chunk +0 lines, -7 lines 0 comments Download
M src/x64/stub-cache-x64.cc View 1 2 3 7 chunks +17 lines, -11 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
Vladislav Kaznacheev
10 years, 4 months ago (2010-07-30 13:13:46 UTC) #1
Vitaly Repeshko
http://codereview.chromium.org/3047027/diff/1/2 File src/arm/stub-cache-arm.cc (right): http://codereview.chromium.org/3047027/diff/1/2#newcode1292 src/arm/stub-cache-arm.cc:1292: Object* branch = GenerateMissBranch(); Well, the generator function doesn't ...
10 years, 4 months ago (2010-07-30 13:33:34 UTC) #2
antonm
LGTM. As discussed offline, we probably need to add guards in ..IC::Load/Store.. methods. http://codereview.chromium.org/3047027/diff/1/2 File ...
10 years, 4 months ago (2010-07-30 13:48:25 UTC) #3
Vladislav Kaznacheev
10 years, 4 months ago (2010-07-30 15:21:06 UTC) #4
Vladislav Kaznacheev
10 years, 4 months ago (2010-07-30 15:22:21 UTC) #5
Vladislav Kaznacheev
Addressed the comments. Added AssertNoGC class to prohibit GC while the stubs are being compiled. ...
10 years, 4 months ago (2010-07-30 15:25:32 UTC) #6
Vitaly Repeshko
http://codereview.chromium.org/3047027/diff/16001/17006 File src/ic.cc (right): http://codereview.chromium.org/3047027/diff/16001/17006#newcode574 src/ic.cc:574: AssertNoGC nogc; // GC could invalidate the pointers held ...
10 years, 4 months ago (2010-07-30 16:59:53 UTC) #7
antonm
http://codereview.chromium.org/3047027/diff/16001/17003 File src/heap.cc (right): http://codereview.chromium.org/3047027/diff/16001/17003#newcode328 src/heap.cc:328: ASSERT(gc_allowed_); maybe at the very start of the method? ...
10 years, 4 months ago (2010-07-30 17:18:57 UTC) #8
Vladislav Kaznacheev
Addressed the comments and rebased. I do not quite like what I have done to ...
10 years, 4 months ago (2010-08-04 14:29:20 UTC) #9
antonm
LGTM. http://codereview.chromium.org/3047027/diff/16001/17003 File src/heap.cc (right): http://codereview.chromium.org/3047027/diff/16001/17003#newcode328 src/heap.cc:328: ASSERT(gc_allowed_); On 2010/08/04 14:29:20, Vladislav Kaznacheev wrote: > ...
10 years, 4 months ago (2010-08-04 14:39:36 UTC) #10
Vitaly Repeshko
LGTM I think now all calls to UpdateCaches are protected by AssertNoGC, so having AssertNoGC ...
10 years, 4 months ago (2010-08-04 14:45:37 UTC) #11
Vladislav Kaznacheev
Agree. Done. On 2010/08/04 14:45:37, Vitaly wrote: > LGTM > > I think now all ...
10 years, 4 months ago (2010-08-05 08:25:31 UTC) #12
Vladislav Kaznacheev
10 years, 4 months ago (2010-08-05 08:25:40 UTC) #13
http://codereview.chromium.org/3047027/diff/16001/17003
File src/heap.cc (right):

http://codereview.chromium.org/3047027/diff/16001/17003#newcode328
src/heap.cc:328: ASSERT(gc_allowed_);
On 2010/08/04 14:39:37, antonm wrote:
> On 2010/08/04 14:29:20, Vladislav Kaznacheev wrote:
> > Cannot see much difference.
> > 
> > On 2010/07/30 17:18:57, antonm wrote:
> > > maybe at the very start of the method?
> > 
> > 
> 
> You won't clean any caches.  The mantra is to catch error as early as
possible. 
> Not insisting.

Done.

Powered by Google App Engine
This is Rietveld 408576698