OSDN Git Service

Don't delegate to Quick anymore.
authorNicolas Geoffray <ngeoffray@google.com>
Fri, 2 Oct 2015 10:56:50 +0000 (11:56 +0100)
committerNicolas Geoffray <ngeoffray@google.com>
Fri, 2 Oct 2015 11:55:56 +0000 (12:55 +0100)
Change-Id: I81ffd83daec7be03a796903f40b8bbdcd63c34c7

compiler/optimizing/optimizing_compiler.cc
compiler/optimizing/optimizing_compiler_stats.h

index 3e982dc..5177b9a 100644 (file)
@@ -310,9 +310,6 @@ class OptimizingCompiler FINAL : public Compiler {
 
   std::unique_ptr<std::ostream> visualizer_output_;
 
-  // Delegate to Quick in case the optimizing compiler cannot compile a method.
-  std::unique_ptr<Compiler> delegate_;
-
   DISALLOW_COPY_AND_ASSIGN(OptimizingCompiler);
 };
 
@@ -321,11 +318,9 @@ static const int kMaximumCompilationTimeBeforeWarning = 100; /* ms */
 OptimizingCompiler::OptimizingCompiler(CompilerDriver* driver)
     : Compiler(driver, kMaximumCompilationTimeBeforeWarning),
       run_optimizations_(
-          driver->GetCompilerOptions().GetCompilerFilter() != CompilerOptions::kTime),
-      delegate_(Create(driver, Compiler::Kind::kQuick)) {}
+          driver->GetCompilerOptions().GetCompilerFilter() != CompilerOptions::kTime) {}
 
 void OptimizingCompiler::Init() {
-  delegate_->Init();
   // Enable C1visualizer output. Must be done in Init() because the compiler
   // driver is not fully initialized when passed to the compiler's constructor.
   CompilerDriver* driver = GetCompilerDriver();
@@ -344,7 +339,6 @@ void OptimizingCompiler::Init() {
 }
 
 void OptimizingCompiler::UnInit() const {
-  delegate_->UnInit();
 }
 
 OptimizingCompiler::~OptimizingCompiler() {
@@ -353,8 +347,7 @@ OptimizingCompiler::~OptimizingCompiler() {
   }
 }
 
-void OptimizingCompiler::InitCompilationUnit(CompilationUnit& cu) const {
-  delegate_->InitCompilationUnit(cu);
+void OptimizingCompiler::InitCompilationUnit(CompilationUnit& cu ATTRIBUTE_UNUSED) const {
 }
 
 bool OptimizingCompiler::CanCompileMethod(uint32_t method_idx ATTRIBUTE_UNUSED,
@@ -862,15 +855,6 @@ CompiledMethod* OptimizingCompiler::Compile(const DexFile::CodeItem* code_item,
     }
   }
 
-  if (method != nullptr) {
-    return method;
-  }
-  method = delegate_->Compile(code_item, access_flags, invoke_type, class_def_idx, method_idx,
-                              jclass_loader, dex_file, dex_cache);
-
-  if (method != nullptr) {
-    MaybeRecordStat(MethodCompilationStat::kCompiledQuick);
-  }
   return method;
 }
 
index df45c8e..6375cf1 100644 (file)
@@ -29,7 +29,6 @@ enum MethodCompilationStat {
   kAttemptCompilation = 0,
   kCompiledBaseline,
   kCompiledOptimized,
-  kCompiledQuick,
   kInlinedInvoke,
   kInstructionSimplifications,
   kInstructionSimplificationsArch,
@@ -74,14 +73,11 @@ class OptimizingCompilerStats {
           compile_stats_[kCompiledBaseline] * 100 / compile_stats_[kAttemptCompilation];
       size_t optimized_percent =
           compile_stats_[kCompiledOptimized] * 100 / compile_stats_[kAttemptCompilation];
-      size_t quick_percent =
-          compile_stats_[kCompiledQuick] * 100 / compile_stats_[kAttemptCompilation];
       std::ostringstream oss;
       oss << "Attempted compilation of " << compile_stats_[kAttemptCompilation] << " methods: ";
 
       oss << unoptimized_percent << "% (" << compile_stats_[kCompiledBaseline] << ") unoptimized, ";
       oss << optimized_percent << "% (" << compile_stats_[kCompiledOptimized] << ") optimized, ";
-      oss << quick_percent << "% (" << compile_stats_[kCompiledQuick] << ") quick.";
 
       LOG(INFO) << oss.str();
 
@@ -100,7 +96,6 @@ class OptimizingCompilerStats {
       case kAttemptCompilation : return "kAttemptCompilation";
       case kCompiledBaseline : return "kCompiledBaseline";
       case kCompiledOptimized : return "kCompiledOptimized";
-      case kCompiledQuick : return "kCompiledQuick";
       case kInlinedInvoke : return "kInlinedInvoke";
       case kInstructionSimplifications: return "kInstructionSimplifications";
       case kInstructionSimplificationsArch: return "kInstructionSimplificationsArch";