summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/DWARFDebugRangeList.h
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2014-04-18 17:25:46 +0000
committerAlexey Samsonov <samsonov@google.com>2014-04-18 17:25:46 +0000
commit762343da6c2d311f31328e1c6eee6ea7c90b11ab (patch)
tree150ee78be1a41c86ff4bad05e08ded7719b38084 /llvm/lib/DebugInfo/DWARFDebugRangeList.h
parent5f7c2db2ceae312498634bd521ef64a69a6e2545 (diff)
downloadbcm5719-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.h15
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
OpenPOWER on IntegriCloud