15#ifndef LLVM_DEBUGINFO_SYMBOLIZE_MARKUPFILTER_H
16#define LLVM_DEBUGINFO_SYMBOLIZE_MARKUPFILTER_H
36 std::optional<bool> ColorsEnabled = std::nullopt);
68 struct ModuleInfoLine {
92 void beginModuleInfoLine(
const Module *M);
93 void endAnyModuleInfoLine();
106 void highlightValue();
110 void printRawElement(
const MarkupNode &Element);
113 std::optional<Module> parseModule(
const MarkupNode &Element)
const;
114 std::optional<MMap> parseMMap(
const MarkupNode &Element)
const;
116 std::optional<uint64_t> parseAddr(
StringRef Str)
const;
117 std::optional<uint64_t> parseModuleID(
StringRef Str)
const;
118 std::optional<uint64_t> parseSize(
StringRef Str)
const;
120 std::optional<std::string> parseMode(
StringRef Str)
const;
121 std::optional<PCType> parsePCType(
StringRef Str)
const;
122 std::optional<uint64_t> parseFrameNumber(
StringRef Str)
const;
125 bool checkNumFields(
const MarkupNode &Element,
size_t Size)
const;
126 bool checkNumFieldsAtLeast(
const MarkupNode &Element,
size_t Size)
const;
127 void warnNumFieldsAtMost(
const MarkupNode &Element,
size_t Size)
const;
132 const MMap *getOverlappingMMap(
const MMap &Map)
const;
133 const MMap *getContainingMMap(
uint64_t Addr)
const;
141 const bool ColorsEnabled;
150 std::optional<ModuleInfoLine> MIL;
153 std::optional<raw_ostream::Colors> Color;
160 std::map<uint64_t, MMap> MMaps;
This file declares a library for handling Build IDs and using them to find debug info.
This file defines the DenseMap class.
This file declares the log symbolizer markup data model and parser.
static cl::opt< RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode > Mode("regalloc-enable-advisor", cl::Hidden, cl::init(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default), cl::desc("Enable regalloc advisor mode"), cl::values(clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default, "default", "Default"), clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Release, "release", "precompiled"), clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Development, "development", "for training")))
static bool contains(SmallPtrSetImpl< ConstantExpr * > &Cache, ConstantExpr *Expr, Constant *C)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
LLVM_ABI MarkupFilter(raw_ostream &OS, LLVMSymbolizer &Symbolizer, std::optional< bool > ColorsEnabled=std::nullopt)
LLVM_ABI void filter(std::string &&InputLine)
Filters a line containing symbolizer markup and writes the human-readable results to the output strea...
LLVM_ABI void finish()
Records that the input stream has ended and writes any deferred output.
Parses a log containing symbolizer markup into a sequence of nodes.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
SmallVector< uint8_t, 10 > BuildID
A build ID in binary form.
This is an optimization pass for GlobalISel generic memory operations.
@ Mod
The access may modify the value stored in memory.
A node of symbolizer markup.