|
Improve positions tracking inside the HGraphBuilder.
Instead of tracking simple absolute offset from the start of the script like other places do, track a pair of (inlining id, offset from the start of inlined function).
This enables us to pinpoint with inlining path an instruction came from. Previously in multi-script environments we emitted positions that made very little sense because inside a single optimized function they would point to different scripts without a way to distinguish them.
Start dumping the source of every inlined function to make possible IR viewing tools with integrated source views as there was previously no way to acquire this information from IR dumps. We also dump source position at which each inlining occured.
Tracked positions are written into hydrogen.cfg as pos:<inlining-id>_<offset>.
Flag --emit-opt-code-positions is renamed by this change into --hydrogen-track-positions to better convey it's meaning.
In addition this change assigned global unique identifier to each optimization performed inside isolate. This allows to precisely match compilation artifacts (e.g. IR and disassembly) and deoptimizations.
BUG=
R=yangguo@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=19360
Total comments: 7
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+415 lines, -127 lines) |
Patch |
|
M |
src/arm/lithium-codegen-arm.cc
|
View
|
1
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
src/codegen.cc
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler.h
|
View
|
1
|
3 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler.cc
|
View
|
1
|
5 chunks |
+9 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/deoptimizer.cc
|
View
|
1
|
3 chunks |
+8 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/flag-definitions.h
|
View
|
1
|
3 chunks |
+4 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/hydrogen.h
|
View
|
1
|
17 chunks |
+72 lines, -17 lines |
0 comments
|
Download
|
|
M |
src/hydrogen.cc
|
View
|
1
|
40 chunks |
+174 lines, -47 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-instructions.h
|
View
|
1
|
10 chunks |
+92 lines, -32 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-instructions.cc
|
View
|
1
|
4 chunks |
+16 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-representation-changes.cc
|
View
|
|
1 chunk |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/ia32/lithium-codegen-ia32.cc
|
View
|
1
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
src/isolate.h
|
View
|
1
|
2 chunks |
+10 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/isolate.cc
|
View
|
1
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/lithium-codegen.cc
|
View
|
1
|
1 chunk |
+3 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/mips/lithium-codegen-mips.cc
|
View
|
1
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
1
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
src/x64/lithium-codegen-x64.cc
|
View
|
1
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
Total messages: 6 (0 generated)
|