9#ifndef LLVM_CODEGEN_FAULTMAPS_H
10#define LLVM_CODEGEN_FAULTMAPS_H
39 FunctionInfos.clear();
43 static const char *WFMP;
47 const MCExpr *FaultingOffsetExpr =
nullptr;
48 const MCExpr *HandlerOffsetExpr =
nullptr;
50 FaultInfo() =
default;
53 const MCExpr *HandlerOffset)
54 : Kind(Kind), FaultingOffsetExpr(FaultingOffset),
55 HandlerOffsetExpr(HandlerOffset) {}
58 using FunctionFaultInfos = std::vector<FaultInfo>;
62 struct MCSymbolComparator {
63 bool operator()(
const MCSymbol *
LHS,
const MCSymbol *
RHS)
const {
64 return LHS->getName() <
RHS->getName();
68 std::map<const MCSymbol *, FunctionFaultInfos, MCSymbolComparator>
72 void emitFunctionInfo(
const MCSymbol *FnLabel,
const FunctionFaultInfos &FFI);
This class is intended to be used as a driving class for all asm writers.
LLVM_ABI void recordFaultingOp(FaultKind FaultTy, const MCSymbol *FaultingLabel, const MCSymbol *HandlerLabel)
LLVM_ABI void serializeToFaultMapSection()
LLVM_ABI FaultMaps(AsmPrinter &AP)
static LLVM_ABI const char * faultTypeToString(FaultKind)
Base class for the full range of assembler expressions which are needed for parsing.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
This is an optimization pass for GlobalISel generic memory operations.