Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Issue 2357343003: Fix lazy deoptimization in the presence of exceptions (Closed)

Created:
4 years, 3 months ago by Florian Schneider
Modified:
4 years, 2 months ago
Reviewers:
rmacnak
CC:
reviews_dartlang.org, Vyacheslav Egorov (Google)
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Fix lazy deoptimization in the presence of exceptions Catch block entries need to be considered when doing lazy deoptimization. In addition to the return, also patch all catch entry blocks in a function scheduled for lazy deoptimization. Also, move restoring the pool pointer to the jump-to-handler stub to simplify patching the catch entry. BUG=#27419 R=rmacnak@google.com Committed: https://github.com/dart-lang/sdk/commit/7ca3da1a3aabcc52cef226380870a67fd0a5f98d

Patch Set 1 #

Patch Set 2 : bug fix #

Patch Set 3 : new test case #

Total comments: 5

Patch Set 4 : Ensure space for patching on ARM/MIPS archs #

Unified diffs Side-by-side diffs Delta from patch set Stats (+252 lines, -62 lines) Patch
M runtime/vm/code_generator.cc View 1 2 3 1 chunk +17 lines, -5 lines 0 comments Download
M runtime/vm/flow_graph.cc View 1 1 chunk +3 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_allocator.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 2 3 2 chunks +4 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler.h View 1 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 1 2 chunks +4 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 1 5 chunks +5 lines, -5 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm64.cc View 1 5 chunks +5 lines, -5 lines 0 comments Download
M runtime/vm/flow_graph_compiler_dbc.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 3 chunks +3 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 1 5 chunks +5 lines, -5 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 5 chunks +5 lines, -5 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 3 chunks +6 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 3 3 chunks +20 lines, -5 lines 0 comments Download
M runtime/vm/intermediate_language_arm64.cc View 1 2 3 3 chunks +20 lines, -6 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 3 3 chunks +16 lines, -1 line 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 3 3 chunks +20 lines, -6 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 3 chunks +16 lines, -6 lines 0 comments Download
M runtime/vm/simulator_arm.cc View 1 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/simulator_arm64.cc View 1 1 chunk +8 lines, -0 lines 0 comments Download
M runtime/vm/simulator_mips.cc View 1 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_arm.cc View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_arm64.cc View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 1 2 3 1 chunk +3 lines, -1 line 0 comments Download
M runtime/vm/stub_code_x64.cc View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
A tests/language/vm/lazy_deopt_with_exception_test.dart View 1 2 1 chunk +64 lines, -0 lines 0 comments Download

Messages

Total messages: 9 (4 generated)
Florian Schneider
https://codereview.chromium.org/2357343003/diff/40001/runtime/vm/flow_graph_compiler.h File runtime/vm/flow_graph_compiler.h (left): https://codereview.chromium.org/2357343003/diff/40001/runtime/vm/flow_graph_compiler.h#oldcode539 runtime/vm/flow_graph_compiler.h:539: void AddDeoptIndexAtCall(intptr_t deopt_id, TokenPosition token_pos); token_pos was unused here. ...
4 years, 3 months ago (2016-09-23 19:53:34 UTC) #4
rmacnak
LGTM https://chromiumcodereview.appspot.com/2357343003/diff/40001/runtime/vm/intermediate_language_ia32.cc File runtime/vm/intermediate_language_ia32.cc (right): https://chromiumcodereview.appspot.com/2357343003/diff/40001/runtime/vm/intermediate_language_ia32.cc#newcode2552 runtime/vm/intermediate_language_ia32.cc:2552: __ nop(CallPattern::pattern_length_in_bytes()); On 2016/09/23 19:53:34, Florian Schneider wrote: ...
4 years, 2 months ago (2016-09-26 20:21:48 UTC) #5
Florian Schneider
Ptal https://codereview.chromium.org/2357343003/diff/40001/runtime/vm/intermediate_language_ia32.cc File runtime/vm/intermediate_language_ia32.cc (right): https://codereview.chromium.org/2357343003/diff/40001/runtime/vm/intermediate_language_ia32.cc#newcode2552 runtime/vm/intermediate_language_ia32.cc:2552: __ nop(CallPattern::pattern_length_in_bytes()); On 2016/09/26 20:21:48, rmacnak wrote: > ...
4 years, 2 months ago (2016-09-26 23:05:28 UTC) #6
rmacnak
lgtm
4 years, 2 months ago (2016-09-26 23:21:13 UTC) #7
Florian Schneider
4 years, 2 months ago (2016-09-26 23:24:29 UTC) #9
Message was sent while issue was closed.
Committed patchset #4 (id:60001) manually as
7ca3da1a3aabcc52cef226380870a67fd0a5f98d (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698