diff options
| author | 2018-04-21 01:28:11 +0000 | |
|---|---|---|
| committer | 2018-04-21 01:28:11 +0000 | |
| commit | 75ff2c96c37485ff8c74cf9942c0a4bf0710e91c (patch) | |
| tree | 13b3cdcf7060e06b1dc50201c4f4d9436d379db7 /compiler/optimizing/nodes.h | |
| parent | 240384b7d96c2d579bf58ed7a3e9c9ba1911dae3 (diff) | |
Revert "Revert^2: Deopt does not throw"
This reverts commit 240384b7d96c2d579bf58ed7a3e9c9ba1911dae3.
Reason for revert: P1 b/78360004 points to this so reverting for now (will triage later)
Change-Id: I041c1d9fc045391c73e887268c3b1b9b69fcc216
Diffstat (limited to 'compiler/optimizing/nodes.h')
| -rw-r--r-- | compiler/optimizing/nodes.h | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index b315c81693..79d733060b 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -1272,6 +1272,8 @@ class HBasicBlock : public ArenaObject<kArenaAllocBasicBlock> {    // the appropriate try entry will be returned.    const HTryBoundary* ComputeTryEntryOfSuccessors() const; +  bool HasThrowingInstructions() const; +    // Returns whether this block dominates the blocked passed as parameter.    bool Dominates(HBasicBlock* block) const; @@ -2130,7 +2132,6 @@ class HInstruction : public ArenaObject<kArenaAllocInstruction> {          !CanThrow() &&          !IsSuspendCheck() &&          !IsControlFlow() && -        !IsDeoptimize() &&          !IsNativeDebugInfo() &&          !IsParameterValue() &&          // If we added an explicit barrier then we should keep it. @@ -3237,9 +3238,7 @@ class HDeoptimize FINAL : public HVariableInputSizeInstruction {    bool NeedsEnvironment() const OVERRIDE { return true; } -  // Even though deoptimize is often used for "exceptional cases" to go back to -  // the interpreter, it never throws an exception. -  bool CanThrow() const OVERRIDE { return false; } +  bool CanThrow() const OVERRIDE { return true; }    DeoptimizationKind GetDeoptimizationKind() const { return GetPackedField<DeoptimizeKindField>(); }  |