diff options
author | 2015-09-11 11:59:18 +0100 | |
---|---|---|
committer | 2015-10-27 15:13:37 +0000 | |
commit | 35831e8bfa1c0944d4c978d99c4c5b9577945170 (patch) | |
tree | a347ecaf4265a1713c86d528392e162d5edfaebc /compiler/dwarf/dwarf_test.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/dwarf/dwarf_test.cc')
-rw-r--r-- | compiler/dwarf/dwarf_test.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/dwarf/dwarf_test.cc b/compiler/dwarf/dwarf_test.cc index a07d27c1d2..3ba380e9db 100644 --- a/compiler/dwarf/dwarf_test.cc +++ b/compiler/dwarf/dwarf_test.cc @@ -126,7 +126,7 @@ TEST_F(DwarfTest, DebugFrame) { initial_opcodes, kCFIFormat, &debug_frame_data_); std::vector<uintptr_t> debug_frame_patches; std::vector<uintptr_t> expected_patches { 28 }; // NOLINT - WriteDebugFrameFDE(is64bit, 0, 0x01000000, 0x01000000, opcodes.data(), + WriteDebugFrameFDE(is64bit, 0, 0x01000000, 0x01000000, ArrayRef<const uint8_t>(*opcodes.data()), kCFIFormat, &debug_frame_data_, &debug_frame_patches); EXPECT_EQ(expected_patches, debug_frame_patches); @@ -142,7 +142,8 @@ TEST_F(DwarfTest, DebugFrame64) { std::vector<uintptr_t> debug_frame_patches; std::vector<uintptr_t> expected_patches { 32 }; // NOLINT WriteDebugFrameFDE(is64bit, 0, 0x0100000000000000, 0x0200000000000000, - opcodes.data(), kCFIFormat, &debug_frame_data_, &debug_frame_patches); + ArrayRef<const uint8_t>(*opcodes.data()), + kCFIFormat, &debug_frame_data_, &debug_frame_patches); DW_CHECK("FDE cie=00000000 pc=100000000000000..300000000000000"); EXPECT_EQ(expected_patches, debug_frame_patches); @@ -179,7 +180,8 @@ TEST_F(DwarfTest, x86_64_RegisterMapping) { initial_opcodes, kCFIFormat, &debug_frame_data_); std::vector<uintptr_t> debug_frame_patches; WriteDebugFrameFDE(is64bit, 0, 0x0100000000000000, 0x0200000000000000, - opcodes.data(), kCFIFormat, &debug_frame_data_, &debug_frame_patches); + ArrayRef<const uint8_t>(*opcodes.data()), + kCFIFormat, &debug_frame_data_, &debug_frame_patches); CheckObjdumpOutput(is64bit, "-W"); } |