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

Reply via email to