diff options
Diffstat (limited to 'compiler/optimizing/code_generator.cc')
-rw-r--r-- | compiler/optimizing/code_generator.cc | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc index aadf525f26..50108a7275 100644 --- a/compiler/optimizing/code_generator.cc +++ b/compiler/optimizing/code_generator.cc @@ -542,24 +542,33 @@ void CodeGenerator::AllocateLocations(HInstruction* instruction) { } } +void CodeGenerator::MaybeRecordStat(MethodCompilationStat compilation_stat, size_t count) const { + if (stats_ != nullptr) { + stats_->RecordStat(compilation_stat, count); + } +} + CodeGenerator* CodeGenerator::Create(HGraph* graph, InstructionSet instruction_set, const InstructionSetFeatures& isa_features, - const CompilerOptions& compiler_options) { + const CompilerOptions& compiler_options, + OptimizingCompilerStats* stats) { switch (instruction_set) { #ifdef ART_ENABLE_CODEGEN_arm case kArm: case kThumb2: { return new arm::CodeGeneratorARM(graph, - *isa_features.AsArmInstructionSetFeatures(), - compiler_options); + *isa_features.AsArmInstructionSetFeatures(), + compiler_options, + stats); } #endif #ifdef ART_ENABLE_CODEGEN_arm64 case kArm64: { return new arm64::CodeGeneratorARM64(graph, - *isa_features.AsArm64InstructionSetFeatures(), - compiler_options); + *isa_features.AsArm64InstructionSetFeatures(), + compiler_options, + stats); } #endif #ifdef ART_ENABLE_CODEGEN_mips @@ -572,22 +581,25 @@ CodeGenerator* CodeGenerator::Create(HGraph* graph, #ifdef ART_ENABLE_CODEGEN_mips64 case kMips64: { return new mips64::CodeGeneratorMIPS64(graph, - *isa_features.AsMips64InstructionSetFeatures(), - compiler_options); + *isa_features.AsMips64InstructionSetFeatures(), + compiler_options, + stats); } #endif #ifdef ART_ENABLE_CODEGEN_x86 case kX86: { return new x86::CodeGeneratorX86(graph, - *isa_features.AsX86InstructionSetFeatures(), - compiler_options); + *isa_features.AsX86InstructionSetFeatures(), + compiler_options, + stats); } #endif #ifdef ART_ENABLE_CODEGEN_x86_64 case kX86_64: { return new x86_64::CodeGeneratorX86_64(graph, - *isa_features.AsX86_64InstructionSetFeatures(), - compiler_options); + *isa_features.AsX86_64InstructionSetFeatures(), + compiler_options, + stats); } #endif default: |