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)
46 Ranges.reserve(NumRanges);
47 for (
uint64_t RangeIdx = 0; RangeIdx < NumRanges; RangeIdx++)
66 return OS <<
'[' <<
HEX64(R.start()) <<
" - " <<
HEX64(R.end()) <<
")";
71 for (
size_t I = 0;
I <
Size; ++
I) {
ConstantRange Range(APInt(BitWidth, Low), APInt(BitWidth, High))
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
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.
AddressRange decodeRange(DataExtractor &Data, uint64_t BaseAddr, uint64_t &Offset)
AddressRange objects are encoded and decoded to be relative to a base address.
void encodeRanges(const AddressRanges &Ranges, FileWriter &O, uint64_t BaseAddr)
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.
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)
void skipRange(DataExtractor &Data, uint64_t &Offset)
Skip an address range object in the specified data a the specified offset.
This is an optimization pass for GlobalISel generic memory operations.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)