|
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
Total comments: 18
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
|
Total messages: 8 (1 generated)
|