Files
gps/tools/local/circt/include/llvm/DebugInfo/DWARF/DWARFUnwindTablePrinter.h
T
2026-07-12 11:01:51 +03:00

53 lines
1.9 KiB
C++

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_DEBUGINFO_DWARF_DWARFUNWINDTABLEPRINTER_H
#define LLVM_DEBUGINFO_DWARF_DWARFUNWINDTABLEPRINTER_H
#include "llvm/DebugInfo/DWARF/LowLevel/DWARFUnwindTable.h"
#include "llvm/Support/Compiler.h"
namespace llvm {
struct DIDumpOptions;
namespace dwarf {
LLVM_ABI raw_ostream &operator<<(raw_ostream &OS, const UnwindLocation &R);
LLVM_ABI raw_ostream &operator<<(raw_ostream &OS, const RegisterLocations &RL);
LLVM_ABI raw_ostream &operator<<(raw_ostream &OS, const UnwindRow &Row);
/// Print a UnwindTable to the stream.
///
/// \param Rows the UnwindTable to print.
///
/// \param OS the stream to use for output.
///
/// \param MRI register information that helps emit register names instead
/// of raw register numbers.
///
/// \param IsEH true if the DWARF Call Frame Information is from .eh_frame
/// instead of from .debug_frame. This is needed for register number
/// conversion because some register numbers differ between the two sections
/// for certain architectures like x86.
///
/// \param IndentLevel specify the indent level as an integer. The UnwindRow
/// will be output to the stream preceded by 2 * IndentLevel number of spaces.
LLVM_ABI void printUnwindTable(const UnwindTable &Rows, raw_ostream &OS,
DIDumpOptions DumpOpts,
unsigned IndentLevel = 0);
LLVM_ABI raw_ostream &operator<<(raw_ostream &OS, const UnwindTable &Rows);
} // end namespace dwarf
} // end namespace llvm
#endif // LLVM_DEBUGINFO_DWARF_DWARFUNWINDTABLEPRINTER_H