|
Implement class id checks as a separate instruction and add a local CSE optimization pass.
This CL contains:
A new CheckClassComp instruction. Currently it is used only for instance loads:
(LoadInstanceFieldComp)
A pass LocalCSE that performs block-local common subexpression elimination. To identify
redundant expressions I use a hash map per basic block. Computations that do not have
side effects can participate in CSE. For now, I only enabled it for CheckClass.
Any computation that participates in CSE must implement the AttributesEqual function.
Other smaller fixes:
Places where we can pass the correct initial size for GrowableArrays
that have a known size. We should consider having a FixedLengthArray for this purpose.
Made the accessors ic_data() and set_ic_data() use a const ICData*.
Committed: https://code.google.com/p/dart/source/detail?r=10948
Total comments: 28
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+511 lines, -27 lines) |
Patch |
|
M |
runtime/vm/code_generator.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/code_generator.cc
|
View
|
|
3 chunks |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/compiler.cc
|
View
|
|
2 chunks |
+10 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.cc
|
View
|
1
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.h
|
View
|
|
3 chunks |
+19 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
1
|
7 chunks |
+65 lines, -11 lines |
0 comments
|
Download
|
|
A |
runtime/vm/hash_map.h
|
View
|
1
|
1 chunk |
+169 lines, -0 lines |
0 comments
|
Download
|
|
A |
runtime/vm/hash_map_test.cc
|
View
|
1
|
1 chunk |
+35 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.h
|
View
|
1
|
11 chunks |
+68 lines, -7 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.cc
|
View
|
1
|
3 chunks |
+55 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
|
1 chunk |
+41 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
|
1 chunk |
+41 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/vm_sources.gypi
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
Total messages: 4 (0 generated)
|