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

Issue 324093002: ARM/ARM64: Optimise HLoadNamedField and HStoreNamedField.

Created:
6 years, 6 months ago by Alexandre Rames
Modified:
5 years ago
CC:
v8-dev
Visibility:
Public.

Description

ARM/ARM64: Optimise HLoadNamedField and HStoreNamedField. The access to the object properties is abstracted in via a separate HLoadNamedField to be shared across accesses to the same object.

Patch Set 1 #

Patch Set 2 : Upload the correct patch (minor diff in hydrogen.h) #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+174 lines, -29 lines) Patch
M src/arm/lithium-arm.h View 2 chunks +9 lines, -4 lines 0 comments Download
M src/arm/lithium-arm.cc View 2 chunks +9 lines, -2 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 2 chunks +15 lines, -4 lines 0 comments Download
M src/arm64/lithium-arm64.h View 2 chunks +9 lines, -4 lines 0 comments Download
M src/arm64/lithium-arm64.cc View 2 chunks +11 lines, -2 lines 0 comments Download
M src/arm64/lithium-codegen-arm64.cc View 2 chunks +14 lines, -6 lines 0 comments Download
M src/hydrogen.h View 1 2 chunks +50 lines, -0 lines 0 comments Download
M src/hydrogen-instructions.h View 11 chunks +57 lines, -7 lines 2 comments Download

Messages

Total messages: 7 (2 generated)
Alexandre Rames
This does not show a noticeable impact on benchmarks, but the code generated is cleaner.
6 years, 6 months ago (2014-06-10 13:28:19 UTC) #1
ulan
[+Ben] Ben, wdyt about the HObjectAccess comment? https://codereview.chromium.org/324093002/diff/20001/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): https://codereview.chromium.org/324093002/diff/20001/src/hydrogen-instructions.h#newcode6785 src/hydrogen-instructions.h:6785: return true; ...
6 years, 6 months ago (2014-06-12 13:39:18 UTC) #2
titzer
On 2014/06/12 13:39:18, ulan wrote: > [+Ben] > > Ben, wdyt about the HObjectAccess comment? ...
6 years, 6 months ago (2014-06-13 09:33:29 UTC) #3
Alexandre Rames
> We tried to go down this route before, but by simplifying all object accesses ...
6 years, 6 months ago (2014-06-13 10:08:49 UTC) #4
titzer
6 years, 6 months ago (2014-06-17 09:06:53 UTC) #5
On 2014/06/13 10:08:49, Alexandre Rames wrote:
> > We tried to go down this route before, but by simplifying all object
accesses
> > into a either two loads or a load and a store. That had the disadvantage of
> > reducing the accuracy of GVN and load/store elimination.
> > 
> > This approach doesn't that have the disadvantage of reducing the accuracy of
> > those phases, but it further entangles the whole graph with these extra
uses,
> > that are only used on two backends. That seems like added complexity that
I'm
> > not sure is worth it.
> 
> Maybe the patch could be simplified to have the second load take the newly
> introduced first load as its object input rather than as a separate input. If
> that works the modifications to the graphs could be acceptable; what do you
> think?
> We have another similar patch extracting the 'load map' outside of 'compare
map'
> instructions. Like this patch it doesn't impact the benchmarks, but cleans the
> generated code.

This is overall a good idea, since that allows the loads to be GVN'd together.
However, there will need to be some modifications to check elimination, since
the load of the map gets the set of maps at the point of the load, not at the
point of the compare. That is almost like combining load elimination with check
elimination, but I am not quite sure.

> The arch-dependent code in hydrogen.h and hydrogen-instructions.h could also
be
> moved to separate arm64 headers, but I don't think it is preferable.

Powered by Google App Engine
This is Rietveld 408576698