summaryrefslogtreecommitdiffstats
path: root/compiler/elf_writer_debug.cc
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-05-01 20:22:57 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-05-01 20:22:57 +0000
commit485971cf4105886773a3fd10a0021738d4cd4de7 (patch)
tree21884901f1e7d19e15147d203fa19f45ff5e89a1 /compiler/elf_writer_debug.cc
parentf274519ce9fc3a9df477ffb320bcdcddab505b58 (diff)
parent6d73c9d06bc0fc6b32825ca0a8224010933a026e (diff)
downloadart-485971cf4105886773a3fd10a0021738d4cd4de7.tar.gz
art-485971cf4105886773a3fd10a0021738d4cd4de7.tar.bz2
art-485971cf4105886773a3fd10a0021738d4cd4de7.zip
Merge "Do not write CFI and symbols for deduplicate methods."
Diffstat (limited to 'compiler/elf_writer_debug.cc')
-rw-r--r--compiler/elf_writer_debug.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/compiler/elf_writer_debug.cc b/compiler/elf_writer_debug.cc
index 28e6999472..e8c3b6e432 100644
--- a/compiler/elf_writer_debug.cc
+++ b/compiler/elf_writer_debug.cc
@@ -170,11 +170,13 @@ void WriteEhFrame(const CompilerDriver* compiler,
size_t cie_offset = eh_frame->size();
WriteEhFrameCIE(isa, address_type, eh_frame);
for (const OatWriter::DebugInfo& mi : method_infos) {
- const SwapVector<uint8_t>* opcodes = mi.compiled_method_->GetCFIInfo();
- if (opcodes != nullptr) {
- WriteEhFrameFDE(Is64BitInstructionSet(isa), cie_offset,
- mi.low_pc_, mi.high_pc_ - mi.low_pc_,
- opcodes, eh_frame, eh_frame_patches);
+ if (!mi.deduped_) { // Only one FDE per unique address.
+ const SwapVector<uint8_t>* opcodes = mi.compiled_method_->GetCFIInfo();
+ if (opcodes != nullptr) {
+ WriteEhFrameFDE(Is64BitInstructionSet(isa), cie_offset,
+ mi.low_pc_, mi.high_pc_ - mi.low_pc_,
+ opcodes, eh_frame, eh_frame_patches);
+ }
}
}