diff options
author | David Srbecky <dsrbecky@google.com> | 2019-07-31 18:40:09 +0100 |
---|---|---|
committer | David Srbecky <dsrbecky@google.com> | 2019-08-16 09:10:55 +0000 |
commit | 8fc2f95291206806599d4f2a50da529da85155b6 (patch) | |
tree | c3c9de9a9a925d6ab790f6db466d1f9c17ed1010 /compiler/optimizing/optimizing_compiler.cc | |
parent | 9ce340f829f836560278ecd078fbefcf19c9d629 (diff) |
JIT mini-debug-info: Remove global maps.
Keep the extra bookkeeping information in JITCodeEntry.
Also do the compression eagerly during GC rather then lazily.
Test: test.py -b --host --jit
Bug: 119800099
Change-Id: Ie6cc682033a32c01d4c2cac242d8a4201116f940
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index b1a3abee2f..5d06969b4e 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -1481,17 +1481,13 @@ void OptimizingCompiler::GenerateJitDebugInfo(ArtMethod* method ATTRIBUTE_UNUSED const bool mini_debug_info = !compiler_options.GetGenerateDebugInfo(); // Create entry for the single method that we just compiled. - std::vector<uint8_t> elf_file = debug::MakeElfFileForJIT( - compiler_options.GetInstructionSet(), - compiler_options.GetInstructionSetFeatures(), - mini_debug_info, - info); - AddNativeDebugInfoForJit(Thread::Current(), - reinterpret_cast<const void*>(info.code_address), - elf_file, - mini_debug_info ? debug::PackElfFileForJIT : nullptr, - compiler_options.GetInstructionSet(), - compiler_options.GetInstructionSetFeatures()); + InstructionSet isa = compiler_options.GetInstructionSet(); + const InstructionSetFeatures* features = compiler_options.GetInstructionSetFeatures(); + std::vector<uint8_t> elf = debug::MakeElfFileForJIT(isa, features, mini_debug_info, info); + + // NB: Don't allow packing of full info since it would remove non-backtrace data. + const void* code_ptr = reinterpret_cast<const void*>(info.code_address); + AddNativeDebugInfoForJit(code_ptr, elf, /*allow_packing=*/ mini_debug_info); } Runtime::Current()->GetJit()->AddTimingLogger(logger); } |