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

Issue 552303005: Fix StoreIndexedInstr input representation requirements for Int32/Uint32 arrays. (Closed)

Created:
6 years, 3 months ago by Vyacheslav Egorov (Google)
Modified:
6 years, 3 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Fix StoreIndexedInstr input representation requirements for Int32/Uint32 arrays. Previous implementation changed input representation depending on the propagated type of the value which violated assumptions made by SelectRepresentations phase. Instead of using tagged/mint input require unboxed Int32/Uint32 input and insert explicit truncating unboxing when building StoreIndexed operation in the optimizer. This also leads to strictly better code and opens possibilities for further optimizations. Implement Int32/Uint32 representation support on all platforms. This includes boxing, unboxing and unboxed converter operations. Merge BoxInt32/BoxUint32 and UnboxInt32/UnboxUint32 instruction sequences to minimize duplication. Improve instruction sequences by utilizing CARRY flag set by smi untagging where possible (ARM, ia32, x86). Enable all tests that were disabled by r40078, r40079. BUG=http://dartbug.com/20875 R=fschneider@google.com, johnmccutchan@google.com, srdjan@google.com, zra@google.com Committed: https://code.google.com/p/dart/source/detail?r=40143

Patch Set 1 #

Total comments: 18

Patch Set 2 : fix typo #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+815 lines, -466 lines) Patch
M pkg/pkg.status View 1 chunk +0 lines, -5 lines 0 comments Download
M runtime/vm/assembler_arm.h View 3 chunks +11 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.h View 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.cc View 1 chunk +20 lines, -0 lines 0 comments Download
M runtime/vm/assembler_mips.h View 2 chunks +7 lines, -1 line 0 comments Download
M runtime/vm/assembler_x64.h View 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64.cc View 1 chunk +19 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 6 chunks +42 lines, -22 lines 4 comments Download
M runtime/vm/il_printer.cc View 1 chunk +11 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language.h View 16 chunks +43 lines, -13 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 6 chunks +26 lines, -3 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 9 chunks +63 lines, -176 lines 2 comments Download
M runtime/vm/intermediate_language_arm64.cc View 4 chunks +140 lines, -24 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 7 chunks +84 lines, -160 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 4 chunks +191 lines, -24 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 4 chunks +141 lines, -23 lines 0 comments Download
M tests/co19/co19-runtime.status View 1 chunk +0 lines, -13 lines 0 comments Download

Messages

Total messages: 8 (1 generated)
Vyacheslav Egorov (Google)
PTAL
6 years, 3 months ago (2014-09-10 21:47:51 UTC) #2
Cutch
lgtm
6 years, 3 months ago (2014-09-10 22:27:56 UTC) #3
srdjan
LGTM
6 years, 3 months ago (2014-09-10 22:32:44 UTC) #4
zra
lgtm https://codereview.chromium.org/552303005/diff/1/runtime/vm/assembler_arm.cc File runtime/vm/assembler_arm.cc (right): https://codereview.chromium.org/552303005/diff/1/runtime/vm/assembler_arm.cc#newcode2267 runtime/vm/assembler_arm.cc:2267: if (shift_imm == 32) shift_imm = 0; // ...
6 years, 3 months ago (2014-09-10 23:17:22 UTC) #5
Florian Schneider
Lgtm. https://codereview.chromium.org/552303005/diff/20001/runtime/vm/flow_graph_optimizer.cc File runtime/vm/flow_graph_optimizer.cc (right): https://codereview.chromium.org/552303005/diff/20001/runtime/vm/flow_graph_optimizer.cc#newcode1387 runtime/vm/flow_graph_optimizer.cc:1387: Remove extra \n. https://codereview.chromium.org/552303005/diff/20001/runtime/vm/flow_graph_optimizer.cc#newcode1469 runtime/vm/flow_graph_optimizer.cc:1469: // mints (ia32 ...
6 years, 3 months ago (2014-09-11 09:38:54 UTC) #6
Vyacheslav Egorov (Google)
Thanks for the review! Landing. https://codereview.chromium.org/552303005/diff/1/runtime/vm/assembler_arm.cc File runtime/vm/assembler_arm.cc (right): https://codereview.chromium.org/552303005/diff/1/runtime/vm/assembler_arm.cc#newcode2267 runtime/vm/assembler_arm.cc:2267: if (shift_imm == 32) ...
6 years, 3 months ago (2014-09-11 11:49:17 UTC) #7
Vyacheslav Egorov (Google)
6 years, 3 months ago (2014-09-11 12:33:16 UTC) #8
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as 40143 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698