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

Issue 19755: Experimental: allow the virtual frame to explicitly indicate sharing... (Closed)

Created:
11 years, 10 months ago by Kevin Millikin (Chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Experimental: allow the virtual frame to explicitly indicate sharing of memory (as well as register) elements. A new type of frame element is introduced, which is a copy of a memory or register element. As a simple first implementation, sets of copies are backed by their lowest frame element. This requires adjusting the backing store when moving elements up and down in the frame. Copied elements have copy-on-write semantics---modifying the backing frame element requires finding the appropriate new backing element and updating all copies in the set. Committed: http://code.google.com/p/v8/source/detail?r=1245

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Total comments: 13

Patch Set 4 : '' #

Patch Set 5 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+682 lines, -230 lines) Patch
M src/virtual-frame-ia32.h View 1 2 3 5 chunks +31 lines, -13 lines 0 comments Download
M src/virtual-frame-ia32.cc View 1 2 3 4 22 chunks +651 lines, -217 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Kevin Millikin (Chromium)
Kasper & Bill, can you take a look at this? Two caveats: (1) Much of ...
11 years, 10 months ago (2009-02-02 16:26:41 UTC) #1
William Hesse
OK, LGTM, with comments. Will a flag or a linked list be added so that ...
11 years, 10 months ago (2009-02-09 12:24:36 UTC) #2
Kevin Millikin (Chromium)
http://codereview.chromium.org/19755/diff/405/1405 File src/virtual-frame-ia32.cc (right): http://codereview.chromium.org/19755/diff/405/1405#newcode255 Line 255: ASSERT(temp.is_valid()); On 2009/02/09 12:24:36, William Hesse wrote: > ...
11 years, 10 months ago (2009-02-09 13:43:53 UTC) #3
William Hesse
http://codereview.chromium.org/19755/diff/405/1405 File src/virtual-frame-ia32.cc (right): http://codereview.chromium.org/19755/diff/405/1405#newcode1133 Line 1133: } What about all the other copies of ...
11 years, 10 months ago (2009-02-09 15:18:20 UTC) #4
Kevin Millikin (Chromium)
11 years, 10 months ago (2009-02-09 15:52:55 UTC) #5
New change list uploaded.

http://codereview.chromium.org/19755/diff/405/1405
File src/virtual-frame-ia32.cc (right):

http://codereview.chromium.org/19755/diff/405/1405#newcode1133
Line 1133: }
On 2009/02/09 15:18:20, William Hesse wrote:
> What about all the other copies of the backing element?  Their indices need to
> be redirected to the new base too.

Yes.  Done.

http://codereview.chromium.org/19755/diff/405/1405#newcode1135
Line 1135: } else if (original.is_register()) {
On 2009/02/09 15:18:20, William Hesse wrote:
> If this happens, then top was a copy of original, but now the copies based at
> original are rebased at something else.  elements_[index] has to get
overwritten
> if it is a register, because otherwise we have two instances of the same
> register in the frame (left that way by AdjustCopies() ).  The whole effect of
> the earlier AdjustCopies has to be undone.  I think it is better to catch this
> case before AdjustCopies().

I'm pretty sure this case can't occur.  I've gotten rid of it entirely in favor
of asserting that it doesn't occur.

Powered by Google App Engine
This is Rietveld 408576698