diff options
author | Alexey Samsonov <samsonov@google.com> | 2014-04-18 17:25:46 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2014-04-18 17:25:46 +0000 |
commit | 762343da6c2d311f31328e1c6eee6ea7c90b11ab (patch) | |
tree | 150ee78be1a41c86ff4bad05e08ded7719b38084 /llvm/lib/DebugInfo/DWARFDebugRangeList.h | |
parent | 5f7c2db2ceae312498634bd521ef64a69a6e2545 (diff) | |
download | bcm5719-llvm-762343da6c2d311f31328e1c6eee6ea7c90b11ab.tar.gz bcm5719-llvm-762343da6c2d311f31328e1c6eee6ea7c90b11ab.zip |
[DWARF parser] Refactor fetching DIE address ranges.
Add a helper method to get address ranges specified in a DIE
(either by DW_AT_low_pc/DW_AT_high_pc, or by DW_AT_ranges). Use it
to untangle and simplify the code.
No functionality change.
llvm-svn: 206624
Diffstat (limited to 'llvm/lib/DebugInfo/DWARFDebugRangeList.h')
-rw-r--r-- | llvm/lib/DebugInfo/DWARFDebugRangeList.h | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/llvm/lib/DebugInfo/DWARFDebugRangeList.h b/llvm/lib/DebugInfo/DWARFDebugRangeList.h index 4e34a916f4a..587b550a668 100644 --- a/llvm/lib/DebugInfo/DWARFDebugRangeList.h +++ b/llvm/lib/DebugInfo/DWARFDebugRangeList.h @@ -17,6 +17,9 @@ namespace llvm { class raw_ostream; +/// DWARFAddressRangesVector - represents a set of absolute address ranges. +typedef std::vector<std::pair<uint64_t, uint64_t>> DWARFAddressRangesVector; + class DWARFDebugRangeList { public: struct RangeListEntry { @@ -50,10 +53,6 @@ public: else return StartAddress == -1ULL; } - bool containsAddress(uint64_t BaseAddress, uint64_t Address) const { - return (BaseAddress + StartAddress <= Address) && - (Address < BaseAddress + EndAddress); - } }; private: @@ -67,10 +66,10 @@ public: void clear(); void dump(raw_ostream &OS) const; bool extract(DataExtractor data, uint32_t *offset_ptr); - /// containsAddress - Returns true if range list contains the given - /// address. Has to be passed base address of the compile unit that - /// references this range list. - bool containsAddress(uint64_t BaseAddress, uint64_t Address) const; + /// getAbsoluteRanges - Returns absolute address ranges defined by this range + /// list. Has to be passed base address of the compile unit referencing this + /// range list. + DWARFAddressRangesVector getAbsoluteRanges(uint64_t BaseAddress) const; }; } // namespace llvm |