diff options
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r-- | compiler/optimizing/nodes.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index ce2edde1c1..7890183229 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -1956,7 +1956,7 @@ class HInstruction : public ArenaObject<kArenaAllocInstruction> { bool IsRemovable() const { return - !HasSideEffects() && + !DoesAnyWrite() && !CanThrow() && !IsSuspendCheck() && !IsControlFlow() && @@ -3782,6 +3782,8 @@ class HInvoke : public HInstruction { return GetEnvironment()->IsFromInlinedInvoke(); } + void SetCanThrow(bool can_throw) { SetPackedFlag<kFlagCanThrow>(can_throw); } + bool CanThrow() const OVERRIDE { return GetPackedFlag<kFlagCanThrow>(); } bool CanBeMoved() const OVERRIDE { return IsIntrinsic(); } @@ -3840,8 +3842,6 @@ class HInvoke : public HInstruction { SetPackedFlag<kFlagCanThrow>(true); } - void SetCanThrow(bool can_throw) { SetPackedFlag<kFlagCanThrow>(can_throw); } - uint32_t number_of_arguments_; ArtMethod* const resolved_method_; ArenaVector<HUserRecord<HInstruction*>> inputs_; |