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

Issue 172293004: Explicit conversions for Float32 array loads/stores. (Closed)

Created:
6 years, 10 months ago by Florian Schneider
Modified:
6 years, 10 months ago
Reviewers:
Cutch
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Explicit conversions for Float32 array loads/stores. Added two new IL instructions: DoubleToFloat and FloatToDouble. This enables store-to-load forwarding for Float32 arrays which was not working before because of the implicit conversions. Loads are now translated as: v3 <- LoadIndexed(v2, v1) v4 <- FloatToDouble(v3) Stores: v5 <- DoubleToFloat(v4) StoreIndexed(v7, v6, v5) There is no explicit representation for float values because they are never used in a deoptimization environment. The only real uses are at FloatToDouble and StoreIndexed. For example when copying a value from one Float32 array to another there is no intermediate conversions anymore a[0] = b[0] before: movss xmm1,[ebx+0x7] cvtss2sd xmm1,xmm1 cvtsd2ss xmm2,xmm1 movss [edx+0x7],xmm2 after: movss xmm1,[ebx+0x7] movss [edx+0x7],xmm1 Also in this change: Eliminate GuardField based on cid information of list factories. GC unused symbols R=johnmccutchan@google.com Committed: https://code.google.com/p/dart/source/detail?r=32891

Patch Set 1 #

Patch Set 2 : #

Total comments: 2

Patch Set 3 : #

Patch Set 4 : fixed ARM register constraints #

Unified diffs Side-by-side diffs Delta from patch set Stats (+389 lines, -76 lines) Patch
M runtime/vm/flow_graph_builder.cc View 1 2 3 2 chunks +6 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 2 3 7 chunks +60 lines, -10 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 2 3 1 chunk +11 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 6 chunks +98 lines, -1 line 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 3 chunks +54 lines, -5 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 3 5 chunks +51 lines, -30 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 3 4 chunks +33 lines, -9 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 3 3 chunks +43 lines, -9 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 4 chunks +33 lines, -9 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Florian Schneider
6 years, 10 months ago (2014-02-19 16:27:40 UTC) #1
Cutch
lgtm but maybe add a TODO/comment explaining why the DoubleToFloat representation is unboxed double. https://codereview.chromium.org/172293004/diff/110001/runtime/vm/intermediate_language.h ...
6 years, 10 months ago (2014-02-19 18:06:01 UTC) #2
Florian Schneider
6 years, 10 months ago (2014-02-21 12:12:42 UTC) #3
Message was sent while issue was closed.
Committed patchset #4 manually as r32891 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698