diff options
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/Android.bp | 10 | ||||
| -rw-r--r-- | compiler/optimizing/nodes.cc | 9 | ||||
| -rw-r--r-- | compiler/optimizing/nodes.h | 7 |
3 files changed, 8 insertions, 18 deletions
diff --git a/compiler/Android.bp b/compiler/Android.bp index cde64b058c..ec9fef7492 100644 --- a/compiler/Android.bp +++ b/compiler/Android.bp @@ -210,7 +210,10 @@ gensrcs { art_cc_library { name: "libart-compiler", - defaults: ["libart-compiler-defaults"], + defaults: [ + "libart-compiler-defaults", + "dex2oat-pgo-defaults", + ], codegen: { arm: { // VIXL assembly support for ARM targets. @@ -244,11 +247,6 @@ art_cc_library { "libdexfile", ], - pgo: { - instrumentation: true, - profile_file: "art/dex2oat.profdata", - benchmarks: ["dex2oat"], - }, target: { android: { lto: { diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc index f784f8f7f3..79bb70b9aa 100644 --- a/compiler/optimizing/nodes.cc +++ b/compiler/optimizing/nodes.cc @@ -1916,15 +1916,6 @@ const HTryBoundary* HBasicBlock::ComputeTryEntryOfSuccessors() const { } } -bool HBasicBlock::HasThrowingInstructions() const { - for (HInstructionIterator it(GetInstructions()); !it.Done(); it.Advance()) { - if (it.Current()->CanThrow()) { - return true; - } - } - return false; -} - static bool HasOnlyOneInstruction(const HBasicBlock& block) { return block.GetPhis().IsEmpty() && !block.GetInstructions().IsEmpty() diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index 79d733060b..b315c81693 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -1272,8 +1272,6 @@ 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; @@ -2132,6 +2130,7 @@ class HInstruction : public ArenaObject<kArenaAllocInstruction> { !CanThrow() && !IsSuspendCheck() && !IsControlFlow() && + !IsDeoptimize() && !IsNativeDebugInfo() && !IsParameterValue() && // If we added an explicit barrier then we should keep it. @@ -3238,7 +3237,9 @@ class HDeoptimize FINAL : public HVariableInputSizeInstruction { bool NeedsEnvironment() const OVERRIDE { return true; } - bool CanThrow() 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; } DeoptimizationKind GetDeoptimizationKind() const { return GetPackedField<DeoptimizeKindField>(); } |