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

Issue 10801013: Preparatory refactoring-only steps for inlining accessors. (Closed)

Created:
8 years, 5 months ago by Sven Panne
Modified:
8 years, 4 months ago
Reviewers:
Michael Starzinger
CC:
v8-dev
Visibility:
Public.

Description

Preparatory refactoring-only steps for inlining accessors. The main change is that the predicate for accessor calls is centralized in IsAccessorCall now, and that the tests using it are directly in the HandleFoo and VisitBar functions, not buried deep down in some BuildBaz functions. This is necessary because later inlining decisions have to be done early, which is in turn necessary because inlining modifies the current hydrogen graph. Furthermore, identifier names and argument order have been unified a bit.

Patch Set 1 #

Total comments: 6

Patch Set 2 : Renaming/Assertion #

Patch Set 3 : Initial attempt for inlining of simple getters on ia32 #

Patch Set 4 : Fixed argument count and expression stack handling. #

Patch Set 5 : Inlining of simple getters/setters w/o deopts #

Patch Set 6 : No-Op change for testing #

Patch Set 7 : No-Op change for testing 2 #

Patch Set 8 : rebased #

Patch Set 9 : Rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+241 lines, -138 lines) Patch
M src/ast.h View 1 2 3 chunks +3 lines, -0 lines 0 comments Download
M src/hydrogen.h View 1 2 3 4 3 chunks +23 lines, -15 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 17 chunks +213 lines, -123 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -0 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Sven Panne
8 years, 5 months ago (2012-07-18 13:54:40 UTC) #1
Michael Starzinger
First round of comments. https://chromiumcodereview.appspot.com/10801013/diff/1/src/hydrogen.cc File src/hydrogen.cc (right): https://chromiumcodereview.appspot.com/10801013/diff/1/src/hydrogen.cc#newcode4778 src/hydrogen.cc:4778: CHECK_ALIVE(store = BuildCallSetter(literal, For object ...
8 years, 5 months ago (2012-07-19 13:28:13 UTC) #2
Sven Panne
8 years, 5 months ago (2012-07-23 12:25:01 UTC) #3
As discussed offline, I've addressed 2 review comments and experiment with a
simple case of inlining for the rest to see if we're heading into the direction
with this refactoring.

No need to review things right now, I'll ping again when something is actually
working.

http://codereview.chromium.org/10801013/diff/1/src/hydrogen.cc
File src/hydrogen.cc (right):

http://codereview.chromium.org/10801013/diff/1/src/hydrogen.cc#newcode4778
src/hydrogen.cc:4778: CHECK_ALIVE(store = BuildCallSetter(literal,
On 2012/07/19 13:28:13, Michael Starzinger wrote:
> For object literals we should never get an accessor because we always use the
> internal Object() constructor and duplicate identifiers are not allowed in
> literals. So better turn this into an assertion here.

Done.

http://codereview.chromium.org/10801013/diff/1/src/hydrogen.cc#newcode5688
src/hydrogen.cc:5688: bool HGraphBuilder::IsAccessorCall(Handle<Map> map,
On 2012/07/19 13:28:13, Michael Starzinger wrote:
> The name of this method is misleading, because it actually performs a lookup.
> Can we call it "LookupAccessorCall" or "LookupAccessorPair" instead?

Done.

Powered by Google App Engine
This is Rietveld 408576698