|
Don't assign safepoint at the definition to the definition's live-range.
This avoids treating spill slot associated with the definition live during GC as
it will only be filled in after definition's code is fully executed.
Additionally this makes output register dead for GC inside the definiton itself
which is something we used to guarantee manually by removing it from the
live_registers set before calling on the slow path.
BUG=
R=fschneider@google.com
Committed: https://code.google.com/p/dart/source/detail?r=38059
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+128 lines, -43 lines) |
Patch |
|
M |
runtime/vm/code_generator.cc
|
View
|
|
2 chunks |
+18 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.h
|
View
|
|
2 chunks |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_allocator.cc
|
View
|
|
9 chunks |
+23 lines, -15 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_arm.cc
|
View
|
|
6 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_arm64.cc
|
View
|
|
5 chunks |
+5 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_ia32.cc
|
View
|
|
7 chunks |
+8 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_mips.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language_x64.cc
|
View
|
|
5 chunks |
+5 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/locations.h
|
View
|
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
|
A |
tests/standalone/slowpath_safepoints_test.dart
|
View
|
|
1 chunk |
+49 lines, -0 lines |
0 comments
|
Download
|
Total messages: 4 (0 generated)
|