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

Issue 10536067: Generate code for store buffer updates in open-coded object field stores. (Closed)

Created:
8 years, 6 months ago by cshapiro
Modified:
8 years, 6 months ago
Reviewers:
srdjan, siva, Ivan Posva
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Generate code for store buffer updates in open-coded object field stores. Committed: https://code.google.com/p/dart/source/detail?r=8755

Patch Set 1 #

Patch Set 2 : adjust filter conditions #

Total comments: 16

Patch Set 3 : address review comments - work in progress #

Patch Set 4 : finish addressing review comments #

Total comments: 7

Patch Set 5 : address review comments #

Patch Set 6 : store buffer update using leaf call #

Total comments: 3

Patch Set 7 : save all registers around leaf runtime call #

Patch Set 8 : correct handling of null #

Unified diffs Side-by-side diffs Delta from patch set Stats (+116 lines, -26 lines) Patch
M runtime/vm/assembler_ia32.h View 1 2 3 4 5 6 2 chunks +10 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.cc View 1 2 3 4 5 6 3 chunks +63 lines, -1 line 0 comments Download
M runtime/vm/code_generator.cc View 1 2 3 4 5 1 chunk +10 lines, -0 lines 0 comments Download
M runtime/vm/code_generator_ia32.cc View 1 2 3 4 5 6 7 1 chunk +6 lines, -5 lines 0 comments Download
M runtime/vm/intrinsifier_ia32.cc View 1 2 3 4 5 5 chunks +16 lines, -12 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 1 2 3 4 5 4 chunks +11 lines, -8 lines 0 comments Download

Messages

Total messages: 14 (0 generated)
cshapiro
8 years, 6 months ago (2012-06-08 04:58:41 UTC) #1
srdjan
DBC and what about x64? http://codereview.chromium.org/10536067/diff/2001/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): http://codereview.chromium.org/10536067/diff/2001/runtime/vm/assembler_ia32.cc#newcode1392 runtime/vm/assembler_ia32.cc:1392: pushal(); This is bad ...
8 years, 6 months ago (2012-06-08 05:46:58 UTC) #2
Ivan Posva
https://chromiumcodereview.appspot.com/10536067/diff/2001/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): https://chromiumcodereview.appspot.com/10536067/diff/2001/runtime/vm/assembler_ia32.cc#newcode1391 runtime/vm/assembler_ia32.cc:1391: // A store buffer update is required. I was ...
8 years, 6 months ago (2012-06-08 14:39:55 UTC) #3
siva
http://codereview.chromium.org/10536067/diff/2001/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): http://codereview.chromium.org/10536067/diff/2001/runtime/vm/assembler_ia32.cc#newcode1383 runtime/vm/assembler_ia32.cc:1383: // Check that value is a new object. Store ...
8 years, 6 months ago (2012-06-08 17:26:01 UTC) #4
cshapiro
http://codereview.chromium.org/10536067/diff/2001/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): http://codereview.chromium.org/10536067/diff/2001/runtime/vm/assembler_ia32.cc#newcode1383 runtime/vm/assembler_ia32.cc:1383: // Check that value is a new object. Store ...
8 years, 6 months ago (2012-06-08 23:48:04 UTC) #5
cshapiro
PTAL I believe this still runs afoul of the garbage collector, but it nevertheless addresses ...
8 years, 6 months ago (2012-06-12 02:35:19 UTC) #6
srdjan
DBC http://codereview.chromium.org/10536067/diff/5002/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): http://codereview.chromium.org/10536067/diff/5002/runtime/vm/assembler_ia32.cc#newcode1411 runtime/vm/assembler_ia32.cc:1411: movl(dest, value); I do not think this works ...
8 years, 6 months ago (2012-06-12 06:57:08 UTC) #7
Ivan Posva
Let's discuss the rest in person later in the week. -Ivan http://codereview.chromium.org/10536067/diff/5002/runtime/vm/assembler_ia32.h File runtime/vm/assembler_ia32.h (right): ...
8 years, 6 months ago (2012-06-12 13:43:58 UTC) #8
cshapiro
http://codereview.chromium.org/10536067/diff/5002/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): http://codereview.chromium.org/10536067/diff/5002/runtime/vm/assembler_ia32.cc#newcode1382 runtime/vm/assembler_ia32.cc:1382: pushl(dest); // Push argument Apparently, this store is not ...
8 years, 6 months ago (2012-06-12 21:41:01 UTC) #9
cshapiro
PTAL
8 years, 6 months ago (2012-06-15 20:50:57 UTC) #10
srdjan
http://codereview.chromium.org/10536067/diff/12001/runtime/vm/code_generator_ia32.cc File runtime/vm/code_generator_ia32.cc (right): http://codereview.chromium.org/10536067/diff/12001/runtime/vm/code_generator_ia32.cc#newcode864 runtime/vm/code_generator_ia32.cc:864: const Object& raw_null = Object::ZoneHandle(Object::null()); Object::ZoneHandle() is enough to ...
8 years, 6 months ago (2012-06-15 21:10:34 UTC) #11
srdjan
http://codereview.chromium.org/10536067/diff/12001/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): http://codereview.chromium.org/10536067/diff/12001/runtime/vm/assembler_ia32.cc#newcode1384 runtime/vm/assembler_ia32.cc:1384: CallRuntime(kStoreBufferRuntimeEntry); I'd rather have a CallLeafRuntime which would store/restore ...
8 years, 6 months ago (2012-06-15 21:12:08 UTC) #12
cshapiro
PTAL http://codereview.chromium.org/10536067/diff/12001/runtime/vm/assembler_ia32.cc File runtime/vm/assembler_ia32.cc (right): http://codereview.chromium.org/10536067/diff/12001/runtime/vm/assembler_ia32.cc#newcode1384 runtime/vm/assembler_ia32.cc:1384: CallRuntime(kStoreBufferRuntimeEntry); Per our off-line discussion, I have added ...
8 years, 6 months ago (2012-06-15 23:17:32 UTC) #13
srdjan
8 years, 6 months ago (2012-06-15 23:43:43 UTC) #14
lgtm

Powered by Google App Engine
This is Rietveld 408576698