LLVM  16.0.0git
DWARFTypePrinter.h
Go to the documentation of this file.
1 //===- DWARFTypePrinter.h ---------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_DEBUGINFO_DWARF_DWARFTYPEPRINTER_H
10 #define LLVM_DEBUGINFO_DWARF_DWARFTYPEPRINTER_H
11 
12 #include "llvm/ADT/StringRef.h"
15 
16 #include <string>
17 
18 namespace llvm {
19 
20 class raw_ostream;
21 
22 // FIXME: We should have pretty printers per language. Currently we print
23 // everything as if it was C++ and fall back to the TAG type name.
26  bool Word = true;
27  bool EndedWithTemplate = false;
28 
30 
31  /// Dump the name encoded in the type tag.
33 
34  void appendArrayType(const DWARFDie &D);
35 
37 
38  bool needsParens(DWARFDie D);
39 
41 
43  std::string *OriginalFullName = nullptr);
44 
46  bool SkipFirstParamIfArtificial = false);
49  bool appendTemplateParameters(DWARFDie D, bool *FirstParameter = nullptr);
51  DWARFDie &V);
54 
55  /// Recursively append the DIE type name when applicable.
57  std::string *OriginalFullName = nullptr);
58 
60  bool SkipFirstParamIfArtificial, bool Const,
61  bool Volatile);
62  void appendScopes(DWARFDie D);
63 };
64 
65 } // namespace llvm
66 
67 #endif // LLVM_DEBUGINFO_DWARF_DWARFTYPEPRINTER_H
llvm::DWARFTypePrinter::appendPointerLikeTypeBefore
void appendPointerLikeTypeBefore(DWARFDie D, DWARFDie Inner, StringRef Ptr)
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::DWARFTypePrinter::decomposeConstVolatile
void decomposeConstVolatile(DWARFDie &N, DWARFDie &T, DWARFDie &C, DWARFDie &V)
llvm::DWARFTypePrinter::OS
raw_ostream & OS
Definition: DWARFTypePrinter.h:25
StringRef.h
llvm::DWARFTypePrinter
Definition: DWARFTypePrinter.h:24
llvm::DWARFTypePrinter::skipQualifiers
DWARFDie skipQualifiers(DWARFDie D)
llvm::DWARFTypePrinter::appendUnqualifiedName
void appendUnqualifiedName(DWARFDie D, std::string *OriginalFullName=nullptr)
Recursively append the DIE type name when applicable.
llvm::DWARFTypePrinter::appendSubroutineNameAfter
void appendSubroutineNameAfter(DWARFDie D, DWARFDie Inner, bool SkipFirstParamIfArtificial, bool Const, bool Volatile)
llvm::DWARFTypePrinter::EndedWithTemplate
bool EndedWithTemplate
Definition: DWARFTypePrinter.h:27
llvm::DWARFTypePrinter::appendScopes
void appendScopes(DWARFDie D)
llvm::dwarf::Tag
Tag
Definition: Dwarf.h:105
llvm::DWARFTypePrinter::Word
bool Word
Definition: DWARFTypePrinter.h:26
llvm::DWARFTypePrinter::appendConstVolatileQualifierBefore
void appendConstVolatileQualifierBefore(DWARFDie N)
llvm::DWARFTypePrinter::appendTemplateParameters
bool appendTemplateParameters(DWARFDie D, bool *FirstParameter=nullptr)
C
(vector float) vec_cmpeq(*A, *B) C
Definition: README_ALTIVEC.txt:86
DWARFDie.h
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:53
llvm::DWARFTypePrinter::needsParens
bool needsParens(DWARFDie D)
llvm::DWARFTypePrinter::appendConstVolatileQualifierAfter
void appendConstVolatileQualifierAfter(DWARFDie N)
llvm::DWARFTypePrinter::appendQualifiedName
void appendQualifiedName(DWARFDie D)
llvm::DWARFTypePrinter::appendUnqualifiedNameBefore
DWARFDie appendUnqualifiedNameBefore(DWARFDie D, std::string *OriginalFullName=nullptr)
D
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
llvm::DWARFTypePrinter::appendArrayType
void appendArrayType(const DWARFDie &D)
Definition: DWARFTypePrinter.cpp:18
llvm::DWARFTypePrinter::appendQualifiedNameBefore
DWARFDie appendQualifiedNameBefore(DWARFDie D)
Ptr
@ Ptr
Definition: TargetLibraryInfo.cpp:60
llvm::DWARFTypePrinter::DWARFTypePrinter
DWARFTypePrinter(raw_ostream &OS)
Definition: DWARFTypePrinter.h:29
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
Dwarf.h
llvm::DWARFTypePrinter::appendUnqualifiedNameAfter
void appendUnqualifiedNameAfter(DWARFDie D, DWARFDie Inner, bool SkipFirstParamIfArtificial=false)
N
#define N
llvm::DWARFDie
Utility class that carries the DWARF compile/type unit and the debug info entry in an object.
Definition: DWARFDie.h:43
llvm::DWARFTypePrinter::appendTypeTagName
void appendTypeTagName(dwarf::Tag T)
Dump the name encoded in the type tag.
Definition: DWARFTypePrinter.cpp:7