LLVM 22.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:
[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 121 of file ScopedPrinter.h.

Member Enumeration Documentation

◆ ScopedPrinterKind

Enumerator
Base 
JSON 

Definition at line 123 of file ScopedPrinter.h.

Constructor & Destructor Documentation

◆ ScopedPrinter()

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

Definition at line 128 of file ScopedPrinter.h.

◆ ~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 443 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 445 of file ScopedPrinter.h.

◆ arrayEnd()

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 447 of file ScopedPrinter.h.

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

◆ classof()

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

Definition at line 134 of file ScopedPrinter.h.

◆ flush()

void llvm::ScopedPrinter::flush ( )
inline

Definition at line 140 of file ScopedPrinter.h.

References OS.

◆ getIndentLevel()

int llvm::ScopedPrinter::getIndentLevel ( )
inline

Definition at line 150 of file ScopedPrinter.h.

◆ getKind()

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

Definition at line 132 of file ScopedPrinter.h.

◆ getOStream()

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

◆ hex()

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

Definition at line 160 of file ScopedPrinter.h.

◆ 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 437 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 439 of file ScopedPrinter.h.

◆ objectEnd()

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 441 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 406 of file ScopedPrinter.h.

◆ printBinary() [2/5]

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

Definition at line 402 of file ScopedPrinter.h.

◆ printBinary() [3/5]

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

Definition at line 396 of file ScopedPrinter.h.

◆ printBinary() [4/5]

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

Definition at line 392 of file ScopedPrinter.h.

◆ printBinary() [5/5]

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

Definition at line 412 of file ScopedPrinter.h.

◆ printBinaryBlock() [1/3]

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

Definition at line 423 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 427 of file ScopedPrinter.h.

◆ printBoolean()

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 283 of file ScopedPrinter.h.

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 209 of file ScopedPrinter.h.

References llvm::SmallVectorImpl< T >::emplace_back().

◆ 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 373 of file ScopedPrinter.h.

◆ 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 362 of file ScopedPrinter.h.

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

◆ printIndent()

void llvm::ScopedPrinter::printIndent ( )
inline

Definition at line 154 of file ScopedPrinter.h.

References OS.

◆ printList() [1/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 347 of file ScopedPrinter.h.

References List.

◆ printList() [2/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 301 of file ScopedPrinter.h.

References List.

◆ printList() [3/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 336 of file ScopedPrinter.h.

References List.

◆ printList() [4/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 332 of file ScopedPrinter.h.

References List.

◆ printList() [5/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 328 of file ScopedPrinter.h.

References List.

◆ printList() [6/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 340 of file ScopedPrinter.h.

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

◆ printList() [7/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 305 of file ScopedPrinter.h.

References 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 317 of file ScopedPrinter.h.

References List.

◆ printList() [10/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 313 of file ScopedPrinter.h.

References List.

◆ printList() [11/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 309 of file ScopedPrinter.h.

References List.

◆ printList() [12/13]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 321 of file ScopedPrinter.h.

References llvm::SmallVectorImpl< T >::emplace_back(), and 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 352 of file ScopedPrinter.h.

References List, OS, and Printer.

◆ 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 266 of file ScopedPrinter.h.

◆ printNumber() [3/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 274 of file ScopedPrinter.h.

References llvm::format().

◆ printNumber() [4/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 270 of file ScopedPrinter.h.

References llvm::format().

◆ printNumber() [5/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 242 of file ScopedPrinter.h.

◆ printNumber() [6/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 258 of file ScopedPrinter.h.

◆ printNumber() [7/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 250 of file ScopedPrinter.h.

◆ printNumber() [8/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 234 of file ScopedPrinter.h.

◆ printNumber() [9/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 226 of file ScopedPrinter.h.

◆ printNumber() [10/15]

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

Definition at line 279 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 230 of file ScopedPrinter.h.

◆ printNumber() [12/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 246 of file ScopedPrinter.h.

◆ printNumber() [13/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 262 of file ScopedPrinter.h.

◆ printNumber() [14/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 254 of file ScopedPrinter.h.

◆ printNumber() [15/15]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 238 of file ScopedPrinter.h.

◆ printObject()

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

Definition at line 433 of file ScopedPrinter.h.

References llvm::to_string().

◆ printString() [1/2]

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

Reimplemented in llvm::JSONScopedPrinter.

Definition at line 384 of file ScopedPrinter.h.

◆ printString() [2/2]

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

◆ printStringEscaped()

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

Definition at line 388 of file ScopedPrinter.h.

◆ printSymbolOffset()

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

Definition at line 378 of file ScopedPrinter.h.

◆ printVersion()

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

Definition at line 287 of file ScopedPrinter.h.

◆ resetIndent()

void llvm::ScopedPrinter::resetIndent ( )
inline

Definition at line 148 of file ScopedPrinter.h.

◆ setPrefix()

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

Definition at line 152 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: