diff options
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 3f73459a00..89edbed54d 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -868,6 +868,11 @@ CodeGenerator* OptimizingCompiler::TryCompile(ArenaAllocator* allocator, compilation_stats_.get()); GraphAnalysisResult result = builder.BuildGraph(); if (result != kAnalysisSuccess) { + // Don't try recompiling this method again. + if (method != nullptr) { + ScopedObjectAccess soa(Thread::Current()); + method->SetDontCompile(); + } SCOPED_TRACE << "Not compiling because of " << result; switch (result) { case kAnalysisSkipped: { |