tberghammer added inline comments. ================ Comment at: source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp:38-41 @@ +37,6 @@ + + if (flags & OPCODE_OPERANDS_TABLE_MASK) + { + OperandTable::ReadOperandTable(debug_macro_data, offset, &header.m_operand_table); + } + ---------------- If we can get rid of all OperandTable related data then this can become a call to the SkipOperandTable function. (What is the purpose of the operand table if you can process everything without using it?).
================ Comment at: source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h:49 @@ +48,3 @@ + uint8_t m_entry_count; + std::map<uint8_t, OperandTableEntry> m_entry_map; // Mapping from opcode number to its entry. + ---------------- Constructing it is quite expensive as we insert a new entry for each operand into a std::map what will involve a binary search and most likely a heap allocation. As we don't use it for anything I would prefer to remove it because we don't want to pay the computation cost required to create it for nothing. We can add it back when we have a use case for it. Going forward in this route I don't see any code reading DWARFDebugMacroHeader::m_operand_table either. I might miss something but if nobody is reading it then we can remove DWARFDebugMacroHeader::m_operand_table, DWARFDebugMacroHeader::OperandTable, DWARFDebugMacroHeader::OperandTableEntry and the call to DWARFDebugMacroHeader::OperandTable::ReadOperandTable what would simplify the code and also improve the efficiency as we don't do a lot of useless work. ================ Comment at: source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h:563 @@ +562,3 @@ + typedef std::map<lldb::offset_t, lldb_private::DebugMacrosSP> DebugMacrosMap; + DebugMacrosMap m_debug_macros_map; + ---------------- Should we use std::map or std::unordered_map here? http://reviews.llvm.org/D15437 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits