Split JIT mini-debug-info packing and compression to two phases.
Every JIT compilation creates a mini-debug-info entry (~800 bytes).
After every 64 compilations, pack the data so that we have multiple
methods per mini-debug-info entry (amortized ~200 bytes per method).
Compress the entries after code GC (amortized ~60 bytes per method).
Splitting packing and compression means we can cheaply claim most
of the memory savings by packing recent methods and older methods
still benefit from the compression.
Test: test.py -b --host -r -t 137-cfi
Change-Id: Ic2c677ada09983e49d96623a48f4d4ad1fa5bfbc
diff --git a/compiler/debug/elf_debug_writer.h b/compiler/debug/elf_debug_writer.h
index 14a5edb..32b2f67 100644
--- a/compiler/debug/elf_debug_writer.h
+++ b/compiler/debug/elf_debug_writer.h
@@ -60,6 +60,7 @@
const InstructionSetFeatures* features,
std::vector<ArrayRef<const uint8_t>>& added_elf_files,
std::vector<const void*>& removed_symbols,
+ bool compress,
/*out*/ size_t* num_symbols);
std::vector<uint8_t> WriteDebugElfFileForClasses(