Go to the documentation of this file.
20 O.writeULEB(Range.
start() - BaseAddr);
21 O.writeULEB(Range.
size());
28 const uint64_t StartAddr = BaseAddr + AddrOffset;
30 return {StartAddr, StartAddr + Size};
35 O.writeULEB(Ranges.
size());
38 for (
auto Range : Ranges)
47 for (
uint64_t RangeIdx = 0; RangeIdx < NumRanges; RangeIdx++)
52 Data.getULEB128(&Offset);
53 Data.getULEB128(&Offset);
66 return OS <<
'[' <<
HEX64(R.start()) <<
" - " <<
HEX64(R.end()) <<
")";
70 size_t Size = AR.
size();
71 for (
size_t I = 0;
I < Size; ++
I) {
This is an optimization pass for GlobalISel generic memory operations.
void reserve(size_t Capacity)
AddressRange decodeRange(DataExtractor &Data, uint64_t BaseAddr, uint64_t &Offset)
AddressRange objects are encoded and decoded to be relative to a base address.
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.
void skipRange(DataExtractor &Data, uint64_t &Offset)
Skip an address range object in the specified data a the specified offset.
uint64_t skipRanges(DataExtractor &Data, uint64_t &Offset)
Skip an address range object in the specified data a the specified offset.
void encodeRange(const AddressRange &Range, FileWriter &O, uint64_t BaseAddr)
This class implements an extremely fast bulk output stream that can only output to a stream.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)
A class that represents an address range.
void insert(AddressRange Range)
A simplified binary data writer class that doesn't require targets, target definitions,...
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void encodeRanges(const AddressRanges &Ranges, FileWriter &O, uint64_t BaseAddr)
The AddressRanges class helps normalize address range collections.