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

Unified Diff: runtime/vm/intermediate_language.h

Issue 2357343003: Fix lazy deoptimization in the presence of exceptions (Closed)
Patch Set: new test case Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/intermediate_language.h
diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h
index 3a5ab03deb6adf202f4309041125802439e9cf23..71b4fff47d5a85930dc878dfc4b13c6878e4119b 100644
--- a/runtime/vm/intermediate_language.h
+++ b/runtime/vm/intermediate_language.h
@@ -898,6 +898,7 @@ FOR_EACH_ABSTRACT_INSTRUCTION(INSTRUCTION_TYPE_CHECK)
friend class ComparisonInstr;
friend class Scheduler;
friend class BlockEntryInstr;
+ friend class CatchBlockEntryInstr; // deopt_id_
// Fetch deopt id without checking if this computation can deoptimize.
intptr_t GetDeoptId() const {
@@ -1565,7 +1566,8 @@ class CatchBlockEntryInstr : public BlockEntryInstr {
intptr_t catch_try_index,
const LocalVariable& exception_var,
const LocalVariable& stacktrace_var,
- bool needs_stacktrace)
+ bool needs_stacktrace,
+ intptr_t deopt_id)
: BlockEntryInstr(block_id, try_index),
graph_entry_(graph_entry),
predecessor_(NULL),
@@ -1573,7 +1575,9 @@ class CatchBlockEntryInstr : public BlockEntryInstr {
catch_try_index_(catch_try_index),
exception_var_(exception_var),
stacktrace_var_(stacktrace_var),
- needs_stacktrace_(needs_stacktrace) { }
+ needs_stacktrace_(needs_stacktrace) {
+ deopt_id_ = deopt_id;
+ }
DECLARE_INSTRUCTION(CatchBlockEntry)

Powered by Google App Engine
This is Rietveld 408576698