9#ifndef LLVM_OBJECT_FAULTMAPPARSER_H
10#define LLVM_OBJECT_FAULTMAPPARSER_H
32 static const size_t FaultMapVersionOffset = 0;
33 static const size_t Reserved0Offset =
35 static const size_t Reserved1Offset = Reserved0Offset +
sizeof(
Reserved0Type);
36 static const size_t NumFunctionsOffset =
38 static const size_t FunctionInfosOffset =
45 assert(
P +
sizeof(
T) <= E &&
"out of bounds read!");
46 return support::endian::read<T, llvm::endianness::little>(
P);
62 static const size_t FaultKindOffset = 0;
63 static const size_t FaultingPCOffsetOffset =
65 static const size_t HandlerPCOffsetOffset =
79 return read<FaultKindType>(
P + FaultKindOffset, E);
83 return read<FaultingPCOffsetType>(
P + FaultingPCOffsetOffset, E);
87 return read<HandlerPCOffsetType>(
P + HandlerPCOffsetOffset, E);
96 static const size_t FunctionAddrOffset = 0;
97 static const size_t NumFaultingPCsOffset =
99 static const size_t ReservedOffset =
101 static const size_t FunctionFaultInfosOffset =
103 static const size_t FunctionInfoHeaderSize = FunctionFaultInfosOffset;
115 return read<FunctionAddrType>(
P + FunctionAddrOffset, E);
119 return read<NumFaultingPCsType>(
P + NumFaultingPCsOffset, E);
124 const uint8_t *Begin =
P + FunctionFaultInfosOffset +
130 size_t MySize = FunctionInfoHeaderSize +
134 assert(Begin < E &&
"out of bounds!");
140 :
P(Begin), E(
End) {}
143 auto Version = read<FaultMapVersionType>(
P + FaultMapVersionOffset, E);
149 return read<NumFunctionsType>(
P + NumFunctionsOffset, E);
153 const uint8_t *Begin =
P + FunctionInfosOffset;
159operator<<(raw_ostream &
OS,
const FaultMapParser::FunctionFaultInfoAccessor &);
162 const FaultMapParser::FunctionInfoAccessor &);
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
FunctionFaultInfoAccessor(const uint8_t *P, const uint8_t *E)
FaultKindType getFaultKind() const
HandlerPCOffsetType getHandlerPCOffset() const
FaultingPCOffsetType getFaultingPCOffset() const
FunctionInfoAccessor(const uint8_t *P, const uint8_t *E)
FunctionInfoAccessor getNextFunctionInfo() const
FunctionAddrType getFunctionAddr() const
NumFaultingPCsType getNumFaultingPCs() const
FunctionFaultInfoAccessor getFunctionFaultInfoAt(uint32_t Index) const
FunctionInfoAccessor()=default
A parser for the __llvm_faultmaps section generated by the FaultMaps class declared in llvm/CodeGen/F...
NumFunctionsType getNumFunctions() const
FunctionInfoAccessor getFirstFunctionInfo() const
FaultMapParser(const uint8_t *Begin, const uint8_t *End)
FaultMapVersionType getFaultMapVersion() const
This is an optimization pass for GlobalISel generic memory operations.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)