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

Issue 330053002: ARM, ARM64: Optimize array copy (Closed)

Created:
6 years, 6 months ago by vincent.belliard
Modified:
6 years, 6 months ago
Reviewers:
Benedikt Meurer, ulan
CC:
v8-dev
Visibility:
Public.

Description

ARM, ARM64: Optimize array copy R=ulan@chromium.org, bmeurer@chromium.org BUG=

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+628 lines, -48 lines) Patch
M src/arm/lithium-arm.h View 3 chunks +47 lines, -0 lines 0 comments Download
M src/arm/lithium-arm.cc View 2 chunks +51 lines, -0 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 chunk +119 lines, -0 lines 0 comments Download
M src/arm64/lithium-arm64.h View 4 chunks +45 lines, -0 lines 0 comments Download
M src/arm64/lithium-arm64.cc View 3 chunks +47 lines, -0 lines 0 comments Download
M src/arm64/lithium-codegen-arm64.cc View 1 chunk +116 lines, -0 lines 0 comments Download
M src/arm64/macro-assembler-arm64.cc View 1 chunk +4 lines, -1 line 0 comments Download
M src/hydrogen.cc View 3 chunks +50 lines, -34 lines 0 comments Download
M src/hydrogen-instructions.h View 4 chunks +76 lines, -13 lines 0 comments Download
M src/hydrogen-instructions.cc View 2 chunks +25 lines, -0 lines 0 comments Download
M src/ia32/lithium-ia32.cc View 1 chunk +12 lines, -0 lines 0 comments Download
M src/mips/lithium-mips.cc View 1 chunk +12 lines, -0 lines 0 comments Download
M src/x64/lithium-x64.cc View 1 chunk +12 lines, -0 lines 0 comments Download
M src/x87/lithium-x87.cc View 1 chunk +12 lines, -0 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
vincent.belliard
The purpose of the patch is to speedup arrays copy. We did that with two ...
6 years, 6 months ago (2014-06-12 14:06:55 UTC) #1
ulan
I don't have better way to implement this optimization, but adding new hydrogen instructions for ...
6 years, 6 months ago (2014-06-20 11:57:23 UTC) #2
Jakob Kummerow
On Fri, Jun 20, 2014 at 2:20 PM, Vincent Belliard <vincent.belliard.arm@gmail.com> wrote: > I don't ...
6 years, 6 months ago (2014-06-20 12:37:47 UTC) #3
vincent.belliard
6 years, 6 months ago (2014-06-23 07:57:30 UTC) #4
The code is faster because it first compute the base addresses and then uses
post index accesses. For ARM 64, it also copy two values in one instruction.
Also, the hole nan (double value) used to initialize the array is loaded once
before the loop and not inside the loop.

To be able to do that within hydrogen, we would need untagged pointer (a priori
only valid if the code can't deopt or allocate) and a pointer access with post
increment.

There is no write barriers in the code because, recently, you push a CL which
always allocate the arrays in the new generation. Before that CL, I had a
version with write barriers which gave the same results.

Powered by Google App Engine
This is Rietveld 408576698