diff options
author | 2015-09-11 11:59:18 +0100 | |
---|---|---|
committer | 2015-10-27 15:13:37 +0000 | |
commit | 35831e8bfa1c0944d4c978d99c4c5b9577945170 (patch) | |
tree | a347ecaf4265a1713c86d528392e162d5edfaebc /compiler/dex/quick/codegen_util.cc | |
parent | 171b12e8060f63cf900ffc43d6db35125f6b8c83 (diff) |
Reduce memory used by CompiledMethods.
Use LengthPrefixedArray<>s instead of SwapVector<>s to store
CompiledMethod data and get rid of the unnecessary members
of CompiledMethod to reduce dex2oat memory usage. Refactor
the deduplication from CompilerDriver to a new class.
Use HashSet<> instead of std::set<> for the DedupeSet<> to
further decrease the memory usage and improve performance.
This reduces the dex2oat memory usage when compiling boot
image on Nexus 5 (with Optimizing, -j1) by ~6.75MiB (5%).
This also reduces the compile time by ~2.2% (~1.6% dex2oat
time; with Optimizing, without -j).
Change-Id: I974f1f5e58350de2bf487a2bca3907fa05fb80ea
Diffstat (limited to 'compiler/dex/quick/codegen_util.cc')
-rw-r--r-- | compiler/dex/quick/codegen_util.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/dex/quick/codegen_util.cc b/compiler/dex/quick/codegen_util.cc index cde99b3fae..d68835a9cf 100644 --- a/compiler/dex/quick/codegen_util.cc +++ b/compiler/dex/quick/codegen_util.cc @@ -22,6 +22,7 @@ #endif #include "base/bit_vector-inl.h" +#include "base/stringprintf.h" #include "dex/mir_graph.h" #include "driver/compiler_driver.h" #include "driver/compiler_options.h" @@ -1165,7 +1166,7 @@ CompiledMethod* Mir2Lir::GetCompiledMethod() { cu_->compiler_driver, cu_->instruction_set, ArrayRef<const uint8_t>(code_buffer_), frame_size_, core_spill_mask_, fp_spill_mask_, - &src_mapping_table_, + ArrayRef<const SrcMapElem>(src_mapping_table_), ArrayRef<const uint8_t>(encoded_mapping_table_), ArrayRef<const uint8_t>(vmap_encoder.GetData()), ArrayRef<const uint8_t>(native_gc_map_), |