|
First implementation of allocation elimination in Hydrogen.
This change implements a simple data-flow analysis pass over captured
objects to the existing escape analysis. It tracks the state of values
in the Hydrogen graph through CapturedObject marker instructions that
are used to construct an appropriate translation for the deoptimizer to
be able to materialize these objects again.
This can be considered a combination of scalar replacement of loads and
stores on captured objects and sinking of unused allocations.
R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis
Committed: http://code.google.com/p/v8/source/detail?r=16098
Total comments: 22
Total comments: 6
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1098 lines, -236 lines) |
Patch |
|
M |
src/arm/lithium-arm.h
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/arm/lithium-arm.cc
|
View
|
1
2
3
4
5
|
5 chunks |
+46 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/arm/lithium-codegen-arm.h
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/arm/lithium-codegen-arm.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+41 lines, -21 lines |
0 comments
|
Download
|
|
M |
src/deoptimizer.h
|
View
|
|
6 chunks |
+53 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/deoptimizer.cc
|
View
|
1
2
3
4
5
|
15 chunks |
+236 lines, -57 lines |
0 comments
|
Download
|
|
M |
src/factory.h
|
View
|
1
2
3
4
|
1 chunk |
+5 lines, -1 line |
0 comments
|
Download
|
|
M |
src/factory.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/heap.h
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/heap.cc
|
View
|
1
2
3
4
5
|
5 chunks |
+17 lines, -16 lines |
0 comments
|
Download
|
|
M |
src/hydrogen.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-escape-analysis.h
|
View
|
1
2
|
1 chunk |
+33 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-escape-analysis.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+226 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-instructions.h
|
View
|
1
2
3
4
5
|
5 chunks |
+49 lines, -20 lines |
0 comments
|
Download
|
|
M |
src/ia32/lithium-codegen-ia32.h
|
View
|
1
2
3
4
5
|
1 chunk |
+5 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/ia32/lithium-codegen-ia32.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+41 lines, -21 lines |
0 comments
|
Download
|
|
M |
src/ia32/lithium-ia32.h
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/ia32/lithium-ia32.cc
|
View
|
1
2
3
4
5
|
5 chunks |
+46 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/lithium.h
|
View
|
1
2
|
4 chunks |
+45 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+8 lines, -1 line |
0 comments
|
Download
|
|
M |
src/x64/lithium-codegen-x64.h
|
View
|
1
2
3
4
5
|
2 chunks |
+6 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/x64/lithium-codegen-x64.cc
|
View
|
1
2
3
4
5
|
1 chunk |
+41 lines, -21 lines |
0 comments
|
Download
|
|
M |
src/x64/lithium-x64.h
|
View
|
1
2
3
4
5
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/x64/lithium-x64.cc
|
View
|
1
2
3
4
5
|
5 chunks |
+46 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/zone.h
|
View
|
1
2
3
4
5
|
2 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
|
A |
test/mjsunit/compiler/escape-analysis.js
|
View
|
|
1 chunk |
+134 lines, -0 lines |
0 comments
|
Download
|
Total messages: 6 (0 generated)
|