|
Add mutable double boxes for fields.
This allows the optimizing compiler to generate unboxed loads/stores
to fields containing double values. The double value is stored
in a reusable double object.
Unboxed loads/stores are generated for optimized code. Unoptimized code
allocates a new double on loads. To avoid performance regressions
for fields that are only written few times (e.g. only in the constructor)
I put a heuristic in place that
compares the usage count of setters and getters. Unboxed operations
are only generated if the setter is invoked a significant amount of
times (threshold is 10% of getter invocations).
The CL is so big because it changes the way LocationSummmary
is allocated: We now have a bit to generate different summaries
for optimized and unoptimized code.
R=srdjan@google.com
Committed: https://code.google.com/p/dart/source/detail?r=31164
Total comments: 42
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1479 lines, -663 lines) |
Patch |
|
M |
runtime/vm/flow_graph_allocator.cc
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.h
|
View
|
1
2
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.cc
|
View
|
1
2
|
1 chunk |
+2 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler.cc
|
View
|
1
2
|
4 chunks |
+9 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.h
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
1
2
|
4 chunks |
+39 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/il_printer.cc
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.h
|
View
|
1
2
|
24 chunks |
+45 lines, -87 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.cc
|
View
|
1
2
|
17 chunks |
+40 lines, -16 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_arm.cc
|
View
|
1
2
|
94 chunks |
+329 lines, -134 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
1
2
|
94 chunks |
+331 lines, -138 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_mips.cc
|
View
|
1
2
|
94 chunks |
+327 lines, -136 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
1
2
|
94 chunks |
+330 lines, -138 lines |
0 comments
|
Download
|
|
M |
runtime/vm/object.h
|
View
|
1
2
|
2 chunks |
+23 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/object.cc
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
Total messages: 7 (0 generated)
|