| Index: runtime/vm/intermediate_language.h
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.h (revision 40101)
|
| +++ runtime/vm/intermediate_language.h (working copy)
|
| @@ -2498,6 +2498,12 @@
|
|
|
| virtual bool CanDeoptimize() const { return true; }
|
|
|
| + virtual bool CanBecomeDeoptimizationTarget() const {
|
| + // AssertAssignable instructions that are specialized by the optimizer
|
| + // (e.g. replaced with CheckClass) need a deoptimization descriptor before.
|
| + return true;
|
| + }
|
| +
|
| virtual Definition* Canonicalize(FlowGraph* flow_graph);
|
|
|
| virtual bool AllowsCSE() const { return true; }
|
| @@ -2665,6 +2671,12 @@
|
|
|
| virtual bool CanDeoptimize() const { return true; }
|
|
|
| + virtual bool CanBecomeDeoptimizationTarget() const {
|
| + // Instance calls that are specialized by the optimizer need a
|
| + // deoptimization descriptor before the call.
|
| + return true;
|
| + }
|
| +
|
| virtual EffectSet Effects() const { return EffectSet::All(); }
|
|
|
| virtual bool MayThrow() const { return true; }
|
| @@ -3137,6 +3149,12 @@
|
|
|
| virtual bool CanDeoptimize() const { return true; }
|
|
|
| + virtual bool CanBecomeDeoptimizationTarget() const {
|
| + // Static calls that are specialized by the optimizer (e.g. sqrt) need a
|
| + // deoptimization descriptor before the call.
|
| + return true;
|
| + }
|
| +
|
| virtual EffectSet Effects() const { return EffectSet::All(); }
|
|
|
| void set_result_cid(intptr_t value) { result_cid_ = value; }
|
|
|