LLVM 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | List of all members
llvm::ScopedPrinter Class Reference

#include "llvm/Support/ScopedPrinter.h"

Inheritance diagram for llvm::ScopedPrinter:
Inheritance graph
[legend]

Public Types

enum class  ScopedPrinterKind { Base , JSON }
 

Public Member Functions

 ScopedPrinter (raw_ostream &OS, ScopedPrinterKind Kind=ScopedPrinterKind::Base)
 
ScopedPrinterKind getKind () const
 
virtual ~ScopedPrinter ()=default
 
void flush ()
 
void indent (int Levels=1)
 
void unindent (int Levels=1)
 
void resetIndent ()
 
int getIndentLevel ()
 
void setPrefix (StringRef P)
 
void printIndent ()
 
template<typename T >
HexNumber hex (T Value)
 
template<typename T , typename TEnum >
void printEnum (StringRef Label, T Value, ArrayRef< EnumEntry< TEnum > > EnumValues)
 
template<typename T , typename TFlag >
void printFlags (StringRef Label, T Value, ArrayRef< EnumEntry< TFlag > > Flags, TFlag EnumMask1={}, TFlag EnumMask2={}, TFlag EnumMask3={}, ArrayRef< FlagEntry > ExtraFlags={})
 
template<typename T >
void printFlags (StringRef Label, T Value)
 
virtual void printNumber (StringRef Label, char Value)
 
virtual void printNumber (StringRef Label, signed char Value)
 
virtual void printNumber (StringRef Label, unsigned char Value)
 
virtual void printNumber (StringRef Label, short Value)
 
virtual void printNumber (StringRef Label, unsigned short Value)
 
virtual void printNumber (StringRef Label, int Value)
 
virtual void printNumber (StringRef Label, unsigned int Value)
 
virtual void printNumber (StringRef Label, long Value)
 
virtual void printNumber (StringRef Label, unsigned long Value)
 
virtual void printNumber (StringRef Label, long long Value)
 
virtual void printNumber (StringRef Label, unsigned long long Value)
 
virtual void printNumber (StringRef Label, const APSInt &Value)
 
virtual void printNumber (StringRef Label, float Value)
 
virtual void printNumber (StringRef Label, double Value)
 
template<typename T >
void printNumber (StringRef Label, StringRef Str, T Value)
 
virtual void printBoolean (StringRef Label, bool Value)
 
template<typename... T>
void printVersion (StringRef Label, T... Version)
 
template<typename T >
void printList (StringRef Label, const ArrayRef< T > List)
 
virtual void printList (StringRef Label, const ArrayRef< bool > List)
 
virtual void printList (StringRef Label, const ArrayRef< std::string > List)
 
virtual void printList (StringRef Label, const ArrayRef< uint64_t > List)
 
virtual void printList (StringRef Label, const ArrayRef< uint32_t > List)
 
virtual void printList (StringRef Label, const ArrayRef< uint16_t > List)
 
virtual void printList (StringRef Label, const ArrayRef< uint8_t > List)
 
virtual void printList (StringRef Label, const ArrayRef< int64_t > List)
 
virtual void printList (StringRef Label, const ArrayRef< int32_t > List)
 
virtual void printList (StringRef Label, const ArrayRef< int16_t > List)
 
virtual void printList (StringRef Label, const ArrayRef< int8_t > List)
 
virtual void printList (StringRef Label, const ArrayRef< APSInt > List)
 
template<typename T , typename U >
void printList (StringRef Label, const T &List, const U &Printer)
 
template<typename T >
void printHexList (StringRef Label, const T &List)
 
template<typename T >
void printHex (StringRef Label, T Value)
 
template<typename T >
void printHex (StringRef Label, StringRef Str, T Value)
 
template<typename T >
void printSymbolOffset (StringRef Label, StringRef Symbol, T Value)
 
virtual void printString (StringRef Value)
 
virtual void printString (StringRef Label, StringRef Value)
 
void printStringEscaped (StringRef Label, StringRef Value)
 
void printBinary (StringRef Label, StringRef Str, ArrayRef< uint8_t > Value)
 
void printBinary (StringRef Label, StringRef Str, ArrayRef< char > Value)
 
void printBinary (StringRef Label, ArrayRef< uint8_t > Value)
 
void printBinary (StringRef Label, ArrayRef< char > Value)
 
void printBinary (StringRef Label, StringRef Value)
 
void printBinaryBlock (StringRef Label, ArrayRef< uint8_t > Value, uint32_t StartOffset)
 
void printBinaryBlock (StringRef Label, ArrayRef< uint8_t > Value)
 
void printBinaryBlock (StringRef Label, StringRef Value)
 
template<typename T >
void printObject (StringRef Label, const T &Value)
 
virtual void objectBegin ()
 
virtual void objectBegin (StringRef Label)
 
virtual void objectEnd ()
 
virtual void arrayBegin ()
 
virtual void arrayBegin (StringRef Label)
 
virtual void arrayEnd ()
 
virtual raw_ostreamstartLine ()
 
virtual raw_ostreamgetOStream ()
 

Static Public Member Functions

static bool classof (const ScopedPrinter *SP)
 

Detailed Description

Definition at line 100 of file ScopedPrinter.h.

Member Enumeration Documentation

◆ ScopedPrinterKind

Enumerator
Base 
JSON 

Definition at line 102 of file ScopedPrinter.h.

Constructor & Destructor Documentation

◆ ScopedPrinter()

llvm::ScopedPrinter::ScopedPrinter ( raw_ostream OS,
ScopedPrinterKind  Kind = ScopedPrinterKind::Base 
)
inline

Definition at line 107 of file ScopedPrinter.h.

References OS.

◆ ~ScopedPrinter()

virtual llvm::ScopedPrinter::~ScopedPrinter ( )
virtualdefault

Member Function Documentation

◆ arrayBegin() [1/2]

virtual void llvm::ScopedPrinter::arrayBegin ( )
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 422 of file ScopedPrinter.h.

Referenced by llvm::ListScope::ListScope(), and llvm::ListScope::setPrinter().

◆ arrayBegin() [2/2]

virtual void llvm::ScopedPrinter::arrayBegin ( StringRef  Label)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 424 of file ScopedPrinter.h.

◆ arrayEnd()

virtual void llvm::ScopedPrinter::arrayEnd ( )
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 426 of file ScopedPrinter.h.

Referenced by llvm::ListScope::~ListScope().

◆ classof()

static bool llvm::ScopedPrinter::classof ( const ScopedPrinter SP)
inlinestatic

Definition at line 113 of file ScopedPrinter.h.

References Base, and getKind().

◆ flush()

void llvm::ScopedPrinter::flush ( )
inline

Definition at line 119 of file ScopedPrinter.h.

References llvm::raw_ostream::flush().

◆ getIndentLevel()

int llvm::ScopedPrinter::getIndentLevel ( )
inline

Definition at line 129 of file ScopedPrinter.h.

◆ getKind()

ScopedPrinterKind llvm::ScopedPrinter::getKind ( ) const
inline

Definition at line 111 of file ScopedPrinter.h.

Referenced by classof(), and llvm::JSONScopedPrinter::classof().

◆ getOStream()

virtual raw_ostream & llvm::ScopedPrinter::getOStream ( )
inlinevirtual

◆ hex()

template<typename T >
HexNumber llvm::ScopedPrinter::hex ( T  Value)
inline

Definition at line 139 of file ScopedPrinter.h.

Referenced by printFlags(), printHex(), and printSymbolOffset().

◆ indent()

void llvm::ScopedPrinter::indent ( int  Levels = 1)
inline

◆ objectBegin() [1/2]

virtual void llvm::ScopedPrinter::objectBegin ( )
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 416 of file ScopedPrinter.h.

Referenced by llvm::DictScope::DictScope(), and llvm::DictScope::setPrinter().

◆ objectBegin() [2/2]

virtual void llvm::ScopedPrinter::objectBegin ( StringRef  Label)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 418 of file ScopedPrinter.h.

◆ objectEnd()

virtual void llvm::ScopedPrinter::objectEnd ( )
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 420 of file ScopedPrinter.h.

Referenced by llvm::DictScope::~DictScope().

◆ printBinary() [1/5]

void llvm::ScopedPrinter::printBinary ( StringRef  Label,
ArrayRef< char Value 
)
inline

Definition at line 385 of file ScopedPrinter.h.

◆ printBinary() [2/5]

void llvm::ScopedPrinter::printBinary ( StringRef  Label,
ArrayRef< uint8_t >  Value 
)
inline

Definition at line 381 of file ScopedPrinter.h.

◆ printBinary() [3/5]

void llvm::ScopedPrinter::printBinary ( StringRef  Label,
StringRef  Str,
ArrayRef< char Value 
)
inline

Definition at line 375 of file ScopedPrinter.h.

◆ printBinary() [4/5]

void llvm::ScopedPrinter::printBinary ( StringRef  Label,
StringRef  Str,
ArrayRef< uint8_t >  Value 
)
inline

Definition at line 371 of file ScopedPrinter.h.

◆ printBinary() [5/5]

void llvm::ScopedPrinter::printBinary ( StringRef  Label,
StringRef  Value 
)
inline

Definition at line 391 of file ScopedPrinter.h.

◆ printBinaryBlock() [1/3]

void llvm::ScopedPrinter::printBinaryBlock ( StringRef  Label,
ArrayRef< uint8_t >  Value 
)
inline

Definition at line 402 of file ScopedPrinter.h.

◆ printBinaryBlock() [2/3]

void llvm::ScopedPrinter::printBinaryBlock ( StringRef  Label,
ArrayRef< uint8_t >  Value,
uint32_t  StartOffset 
)
inline

◆ printBinaryBlock() [3/3]

void llvm::ScopedPrinter::printBinaryBlock ( StringRef  Label,
StringRef  Value 
)
inline

Definition at line 406 of file ScopedPrinter.h.

◆ printBoolean()

virtual void llvm::ScopedPrinter::printBoolean ( StringRef  Label,
bool  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 262 of file ScopedPrinter.h.

References startLine().

Referenced by llvm::logicalview::LVSymbolVisitor::visitKnownRecord().

◆ printEnum()

template<typename T , typename TEnum >
void llvm::ScopedPrinter::printEnum ( StringRef  Label,
T  Value,
ArrayRef< EnumEntry< TEnum > >  EnumValues 
)
inline

◆ printFlags() [1/2]

template<typename T >
void llvm::ScopedPrinter::printFlags ( StringRef  Label,
T  Value 
)
inline

Definition at line 188 of file ScopedPrinter.h.

References llvm::SmallVectorImpl< T >::emplace_back(), and hex().

◆ printFlags() [2/2]

template<typename T , typename TFlag >
void llvm::ScopedPrinter::printFlags ( StringRef  Label,
T  Value,
ArrayRef< EnumEntry< TFlag > >  Flags,
TFlag  EnumMask1 = {},
TFlag  EnumMask2 = {},
TFlag  EnumMask3 = {},
ArrayRef< FlagEntry ExtraFlags = {} 
)
inline

◆ printHex() [1/2]

template<typename T >
void llvm::ScopedPrinter::printHex ( StringRef  Label,
StringRef  Str,
T  Value 
)
inline

Definition at line 352 of file ScopedPrinter.h.

References hex().

◆ printHex() [2/2]

template<typename T >
void llvm::ScopedPrinter::printHex ( StringRef  Label,
T  Value 
)
inline

◆ printHexList()

template<typename T >
void llvm::ScopedPrinter::printHexList ( StringRef  Label,
const T List 
)
inline

Definition at line 341 of file ScopedPrinter.h.

References llvm::SmallVectorImpl< T >::emplace_back(), and llvm::List.

◆ printIndent()

void llvm::ScopedPrinter::printIndent ( )
inline

Definition at line 133 of file ScopedPrinter.h.

Referenced by startLine().

◆ printList() [1/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< APSInt List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 326 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [2/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< bool List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 280 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [3/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< int16_t >  List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 315 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [4/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< int32_t >  List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 311 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [5/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< int64_t >  List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 307 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [6/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< int8_t >  List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 319 of file ScopedPrinter.h.

References llvm::SmallVectorImpl< T >::emplace_back(), and llvm::List.

◆ printList() [7/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< std::string >  List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 284 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [8/13]

template<typename T >
void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< T List 
)
inline

◆ printList() [9/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< uint16_t List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 296 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [10/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< uint32_t List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 292 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [11/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< uint64_t List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 288 of file ScopedPrinter.h.

References llvm::List.

◆ printList() [12/13]

virtual void llvm::ScopedPrinter::printList ( StringRef  Label,
const ArrayRef< uint8_t >  List 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 300 of file ScopedPrinter.h.

References llvm::SmallVectorImpl< T >::emplace_back(), and llvm::List.

◆ printList() [13/13]

template<typename T , typename U >
void llvm::ScopedPrinter::printList ( StringRef  Label,
const T List,
const U &  Printer 
)
inline

Definition at line 331 of file ScopedPrinter.h.

References llvm::List, Printer, and startLine().

◆ printNumber() [1/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
char  Value 
)
inlinevirtual

◆ printNumber() [2/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
const APSInt Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 245 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [3/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
double  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 253 of file ScopedPrinter.h.

References llvm::format(), and startLine().

◆ printNumber() [4/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
float  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 249 of file ScopedPrinter.h.

References llvm::format(), and startLine().

◆ printNumber() [5/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
int  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 221 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [6/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
long long  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 237 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [7/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
long  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 229 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [8/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
short  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 213 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [9/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
signed char  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 205 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [10/15]

template<typename T >
void llvm::ScopedPrinter::printNumber ( StringRef  Label,
StringRef  Str,
T  Value 
)
inline

Definition at line 258 of file ScopedPrinter.h.

References llvm::to_string().

◆ printNumber() [11/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
unsigned char  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 209 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [12/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
unsigned int  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 225 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [13/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
unsigned long long  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 241 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [14/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
unsigned long  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 233 of file ScopedPrinter.h.

References startLine().

◆ printNumber() [15/15]

virtual void llvm::ScopedPrinter::printNumber ( StringRef  Label,
unsigned short  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 217 of file ScopedPrinter.h.

References startLine().

◆ printObject()

template<typename T >
void llvm::ScopedPrinter::printObject ( StringRef  Label,
const T Value 
)
inline

Definition at line 412 of file ScopedPrinter.h.

References printString(), and llvm::to_string().

◆ printString() [1/2]

virtual void llvm::ScopedPrinter::printString ( StringRef  Label,
StringRef  Value 
)
inlinevirtual

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 363 of file ScopedPrinter.h.

References startLine().

◆ printString() [2/2]

virtual void llvm::ScopedPrinter::printString ( StringRef  Value)
inlinevirtual

◆ printStringEscaped()

void llvm::ScopedPrinter::printStringEscaped ( StringRef  Label,
StringRef  Value 
)
inline

Definition at line 367 of file ScopedPrinter.h.

◆ printSymbolOffset()

template<typename T >
void llvm::ScopedPrinter::printSymbolOffset ( StringRef  Label,
StringRef  Symbol,
T  Value 
)
inline

Definition at line 357 of file ScopedPrinter.h.

References hex().

◆ printVersion()

template<typename... T>
void llvm::ScopedPrinter::printVersion ( StringRef  Label,
T...  Version 
)
inline

Definition at line 266 of file ScopedPrinter.h.

References getOStream(), startLine(), and llvm::Version.

◆ resetIndent()

void llvm::ScopedPrinter::resetIndent ( )
inline

Definition at line 127 of file ScopedPrinter.h.

◆ setPrefix()

void llvm::ScopedPrinter::setPrefix ( StringRef  P)
inline

Definition at line 131 of file ScopedPrinter.h.

References P.

◆ startLine()

virtual raw_ostream & llvm::ScopedPrinter::startLine ( )
inlinevirtual

◆ unindent()

void llvm::ScopedPrinter::unindent ( int  Levels = 1)
inline

The documentation for this class was generated from the following files: