LLVM: lib/DebugInfo/GSYM/ExtractRanges.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
12#include <inttypes.h>
13
14namespace llvm {
15namespace gsym {
16
19 O.writeULEB(Range.start() - BaseAddr);
20 O.writeULEB(Range.size());
21}
22
27 const uint64_t StartAddr = BaseAddr + AddrOffset;
28
29 return {StartAddr, StartAddr + Size};
30}
31
34 O.writeULEB(Ranges.size());
35 if (Ranges.empty())
36 return;
37 for (auto Range : Ranges)
39}
40
43 Ranges.clear();
45 Ranges.reserve(NumRanges);
46 for (uint64_t RangeIdx = 0; RangeIdx < NumRanges; RangeIdx++)
48}
49
54
61
62}
63
65 return OS << '[' << HEX64(R.start()) << " - " << HEX64(R.end()) << ")";
66}
67
70 for (size_t I = 0; I < Size; ++I) {
71 if (I)
72 OS << ' ';
73 OS << AR[I];
74 }
75 return OS;
76}
77
78}
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
ConstantRange Range(APInt(BitWidth, Low), APInt(BitWidth, High))
A class that represents an address range.
The AddressRanges class helps normalize address range collections.
A simplified binary data writer class that doesn't require targets, target definitions,...
This class implements an extremely fast bulk output stream that can only output to a stream.
LLVM_ABI AddressRange decodeRange(DataExtractor &Data, uint64_t BaseAddr, uint64_t &Offset)
AddressRange objects are encoded and decoded to be relative to a base address.
Definition ExtractRanges.cpp:23
LLVM_ABI void encodeRanges(const AddressRanges &Ranges, FileWriter &O, uint64_t BaseAddr)
Definition ExtractRanges.cpp:32
LLVM_ABI void decodeRanges(AddressRanges &Ranges, DataExtractor &Data, uint64_t BaseAddr, uint64_t &Offset)
Address ranges are decoded and encoded to be relative to a base address.
Definition ExtractRanges.cpp:41
LLVM_ABI uint64_t skipRanges(DataExtractor &Data, uint64_t &Offset)
Skip an address range object in the specified data a the specified offset.
Definition ExtractRanges.cpp:55
LLVM_ABI void encodeRange(const AddressRange &Range, FileWriter &O, uint64_t BaseAddr)
Definition ExtractRanges.cpp:17
LLVM_ABI void skipRange(DataExtractor &Data, uint64_t &Offset)
Skip an address range object in the specified data a the specified offset.
Definition ExtractRanges.cpp:50
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr uintptr_t uintptr_t Data
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)