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

Issue 14284010: Introduce HObjectAccess, which is used by LoadNamedField and StoreNamedField to denote what parts (Closed)

Created:
7 years, 8 months ago by titzer
Modified:
7 years, 7 months ago
Reviewers:
verwaest1, danno
CC:
v8-dev
Visibility:
Public.

Description

Introduce ObjectAccess, which is used by LoadNamedField and StoreNamedField to denote what parts of an object are referred to by a given load or store. Refactor HGraphBuilder to use ObjectAccess, which removes the need to manually set GVN flags and simplifies the code as well. Committed: https://code.google.com/p/v8/source/detail?r=14791

Patch Set 1 #

Total comments: 30

Patch Set 2 : Integrate feedback from danno; rename ObjectAccess HObjectAccess, allocate them in the zone. #

Patch Set 3 : Some small cleanups; add AddLoad to simplify construction of loads #

Total comments: 19

Patch Set 4 : Move all construction of HObjectAccess into static methods, hiding Portion. #

Total comments: 31

Patch Set 5 : Make HObjectAccess into a free-wheelin' hippy-style peace-and-love value object again. #

Patch Set 6 : Make constructor of HObjectAccess and HObjectAccess::Portion private. #

Total comments: 22

Patch Set 7 : Split apart ForOffset into ForJSObjectOffset, ForJSArrayOffset, and ForFixedArrayOffset #

Total comments: 4

Patch Set 8 : Add HObjectAccess::ForBackingStoreOffset and HObjectAccess::ForAllocationSitePayload. #

Total comments: 23

Patch Set 9 : Merge with changes from verwaest #

Patch Set 10 : Rename HObjectAccess::ForFixedArrayOffset, change formatting of HObject::PrintTo, use HKeyedLoad in… #

Total comments: 3

Patch Set 11 : Make portion 4 bits; remove kXDoubleFields GVNFlag. #

Total comments: 1

Patch Set 12 : Use BitField utility instead of C-language bitfield for portion and offset in HObjectAccess. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+481 lines, -408 lines) Patch
M src/arm/lithium-arm.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -2 lines 0 comments Download
M src/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 6 chunks +20 lines, -36 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +18 lines, -10 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 31 chunks +182 lines, -290 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 6 7 8 9 10 11 8 chunks +121 lines, -60 lines 0 comments Download
M src/hydrogen-instructions.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +133 lines, -4 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -2 lines 0 comments Download
M src/mips/lithium-mips.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -2 lines 0 comments Download
M src/stub-cache.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -2 lines 0 comments Download
M test/mjsunit/regress/regress-123919.js View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 21 (0 generated)
titzer
7 years, 8 months ago (2013-04-25 10:51:44 UTC) #1
danno
Here's a first round. https://codereview.chromium.org/14284010/diff/1/src/code-stubs-hydrogen.cc File src/code-stubs-hydrogen.cc (right): https://codereview.chromium.org/14284010/diff/1/src/code-stubs-hydrogen.cc#newcode371 src/code-stubs-hydrogen.cc:371: ObjectAccess access = AccessInobject(factory->empty_string(), i); ...
7 years, 8 months ago (2013-04-26 09:39:38 UTC) #2
titzer
https://codereview.chromium.org/14284010/diff/1/src/code-stubs-hydrogen.cc File src/code-stubs-hydrogen.cc (right): https://codereview.chromium.org/14284010/diff/1/src/code-stubs-hydrogen.cc#newcode371 src/code-stubs-hydrogen.cc:371: ObjectAccess access = AccessInobject(factory->empty_string(), i); On 2013/04/26 09:39:38, danno ...
7 years, 7 months ago (2013-04-30 15:56:47 UTC) #3
danno
https://codereview.chromium.org/14284010/diff/1/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/14284010/diff/1/src/hydrogen-instructions.h#newcode5312 src/hydrogen-instructions.h:5312: Handle<String> name_; You didn't address this comment. Why not? ...
7 years, 7 months ago (2013-05-02 14:16:46 UTC) #4
titzer
https://codereview.chromium.org/14284010/diff/1/src/hydrogen.h File src/hydrogen.h (right): https://codereview.chromium.org/14284010/diff/1/src/hydrogen.h#newcode1022 src/hydrogen.h:1022: ObjectAccess AccessArray(int offset); On 2013/05/02 14:16:47, danno wrote: > ...
7 years, 7 months ago (2013-05-03 09:18:41 UTC) #5
danno
Getting pretty close, I really like the direction this is going. https://codereview.chromium.org/14284010/diff/17001/.gitignore File .gitignore (right): ...
7 years, 7 months ago (2013-05-06 15:53:06 UTC) #6
titzer
https://codereview.chromium.org/14284010/diff/17001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (left): https://codereview.chromium.org/14284010/diff/17001/src/hydrogen-instructions.cc#oldcode3653 src/hydrogen-instructions.cc:3653: On 2013/05/06 15:53:06, danno wrote: > Stray whitespace removal, ...
7 years, 7 months ago (2013-05-07 17:51:03 UTC) #7
titzer
https://codereview.chromium.org/14284010/diff/17001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/14284010/diff/17001/src/hydrogen-instructions.h#newcode5228 src/hydrogen-instructions.h:5228: // internal use only; different parts of an object ...
7 years, 7 months ago (2013-05-07 17:54:30 UTC) #8
danno
I'll come by in person to discuss some of this. https://codereview.chromium.org/14284010/diff/28001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/14284010/diff/28001/src/hydrogen-instructions.cc#newcode3645 ...
7 years, 7 months ago (2013-05-08 12:05:35 UTC) #9
titzer
https://codereview.chromium.org/14284010/diff/28001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/14284010/diff/28001/src/hydrogen-instructions.cc#newcode3645 src/hydrogen-instructions.cc:3645: portion = kArrayLengths; // XXX: only true for arrays? ...
7 years, 7 months ago (2013-05-08 15:15:45 UTC) #10
danno
Very close... https://codereview.chromium.org/14284010/diff/35001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/14284010/diff/35001/src/hydrogen-instructions.cc#newcode3637 src/hydrogen-instructions.cc:3637: return HObjectAccess(kInobject, offset); If think you might ...
7 years, 7 months ago (2013-05-08 15:40:18 UTC) #11
danno
https://codereview.chromium.org/14284010/diff/39001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/14284010/diff/39001/src/hydrogen-instructions.cc#newcode3633 src/hydrogen-instructions.cc:3633: return HObjectAccess(kInobject, offset); How about handling the map at ...
7 years, 7 months ago (2013-05-10 15:59:19 UTC) #12
titzer
https://codereview.chromium.org/14284010/diff/35001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/14284010/diff/35001/src/hydrogen-instructions.cc#newcode3637 src/hydrogen-instructions.cc:3637: return HObjectAccess(kInobject, offset); On 2013/05/08 15:40:18, danno wrote: > ...
7 years, 7 months ago (2013-05-13 11:23:19 UTC) #13
danno
https://codereview.chromium.org/14284010/diff/39001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/14284010/diff/39001/src/hydrogen-instructions.cc#newcode3633 src/hydrogen-instructions.cc:3633: return HObjectAccess(kInobject, offset); OK, then you will have to ...
7 years, 7 months ago (2013-05-13 15:44:32 UTC) #14
titzer
https://codereview.chromium.org/14284010/diff/39001/src/hydrogen-instructions.cc File src/hydrogen-instructions.cc (right): https://codereview.chromium.org/14284010/diff/39001/src/hydrogen-instructions.cc#newcode3633 src/hydrogen-instructions.cc:3633: return HObjectAccess(kInobject, offset); On 2013/05/13 15:44:32, danno wrote: > ...
7 years, 7 months ago (2013-05-14 09:26:19 UTC) #15
danno
https://codereview.chromium.org/14284010/diff/50001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/14284010/diff/50001/src/hydrogen-instructions.h#newcode5286 src/hydrogen-instructions.h:5286: unsigned portion_ : 3; Can't you just make this ...
7 years, 7 months ago (2013-05-14 14:41:58 UTC) #16
titzer
On 2013/05/14 14:41:58, danno wrote: > https://codereview.chromium.org/14284010/diff/50001/src/hydrogen-instructions.h > File src/hydrogen-instructions.h (right): > > https://codereview.chromium.org/14284010/diff/50001/src/hydrogen-instructions.h#newcode5286 > ...
7 years, 7 months ago (2013-05-14 17:25:04 UTC) #17
danno
https://codereview.chromium.org/14284010/diff/56001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/14284010/diff/56001/src/hydrogen-instructions.h#newcode5267 src/hydrogen-instructions.h:5267: unsigned portion_ : 4; I think you misinterpreted my ...
7 years, 7 months ago (2013-05-15 09:15:30 UTC) #18
titzer
On 2013/05/15 09:15:30, danno wrote: > https://codereview.chromium.org/14284010/diff/56001/src/hydrogen-instructions.h > File src/hydrogen-instructions.h (right): > > https://codereview.chromium.org/14284010/diff/56001/src/hydrogen-instructions.h#newcode5267 > ...
7 years, 7 months ago (2013-05-15 13:18:34 UTC) #19
danno
lgtm if there are no regressions on the big three benchmarks
7 years, 7 months ago (2013-05-15 13:28:41 UTC) #20
titzer
7 years, 7 months ago (2013-05-24 08:38:32 UTC) #21
Message was sent while issue was closed.
Committed patchset #12 manually as r14791 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698