diff options
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
| -rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 895893298e..58647415d7 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -558,7 +558,8 @@ CompiledMethod* OptimizingCompiler::TryCompile(const DexFile::CodeItem* code_ite    {      PassInfo pass_info(HGraphBuilder::kBuilderPassName, &pass_info_printer);      if (!builder.BuildGraph(*code_item)) { -      CHECK(!shouldCompile) << "Could not build graph in optimizing compiler"; +      DCHECK(!(IsCompilingWithCoreImage() && shouldCompile)) +          << "Could not build graph in optimizing compiler";        return nullptr;      }    } @@ -646,4 +647,9 @@ Compiler* CreateOptimizingCompiler(CompilerDriver* driver) {    return new OptimizingCompiler(driver);  } +bool IsCompilingWithCoreImage() { +  const std::string& image = Runtime::Current()->GetImageLocation(); +  return EndsWith(image, "core.art") || EndsWith(image, "core-optimizing.art"); +} +  }  // namespace art  |