Go to the documentation of this file.
19 using namespace ms_demangle;
21 #define OUTPUT_ENUM_CLASS_VALUE(Enum, Value, Desc) \
32 if (std::isalnum(
C) ||
C ==
'>')
69 size_t Pos1 =
OB.getCurrentPosition();
73 size_t Pos2 =
OB.getCurrentPosition();
74 if (SpaceAfter && Pos2 > Pos1)
104 OB <<
"__vectorcall";
110 OB <<
"__attribute__((__swiftcall__)) ";
113 OB <<
"__attribute__((__swiftasynccall__)) ";
125 std::string Owned(SV.begin(), SV.end());
126 std::free(
OB.getBuffer());
162 StringView Separator)
const {
167 for (
size_t I = 1;
I <
Count; ++
I) {
234 OB <<
"`dynamic atexit destructor for ";
236 OB <<
"`dynamic initializer for ";
305 "`vector deleting dtor'");
307 "`default ctor closure'");
309 "`scalar deleting dtor'");
311 "`vector ctor iterator'");
313 "`vector dtor iterator'");
315 "`vector vbase ctor iterator'");
317 "`virtual displacement map'");
319 "`eh vector ctor iterator'");
321 "`eh vector dtor iterator'");
323 "`eh vector vbase ctor iterator'");
325 "`copy ctor closure'");
327 "`local vftable ctor closure'");
330 "operator delete[]");
332 "`managed vector ctor iterator'");
334 "`managed vector dtor iterator'");
336 "`EH vector copy ctor iterator'");
338 "`EH vector vbase copy ctor iterator'");
340 "`vector copy ctor iterator'");
342 "`vector vbase copy constructor iterator'");
344 "`managed vector vbase copy constructor iterator'");
346 "operator co_await");
358 OB <<
"`local static thread guard'";
360 OB <<
"`local static guard'";
382 OB <<
"operator \"\"" <<
Name;
406 OB <<
"extern \"C\" ";
428 if (
OB.back() !=
'(')
442 OB <<
" __unaligned";
492 OB <<
"__unaligned ";
594 const char *AccessSpec =
nullptr;
595 bool IsStatic =
true;
598 AccessSpec =
"private";
601 AccessSpec =
"public";
604 AccessSpec =
"protected";
611 OB << AccessSpec <<
": ";
616 Type->outputPre(
OB, Flags);
621 Type->outputPost(
OB, Flags);
635 OB <<
"`RTTI Base Class Descriptor at (";
void outputPre(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
void outputPost(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
This is an optimization pass for GlobalISel generic memory operations.
This is a utility class that provides an abstraction for the common functionality between Instruction...
NodeArrayNode * Components
QualifiedNameNode * TargetName
void outputPost(OutputBuffer &OB, OutputFlags Flags) const override
void outputPost(OutputBuffer &OB, OutputFlags Flags) const override
FunctionSignatureNode * Signature
void output(OutputBuffer &OB, OutputFlags Flags) const override
void outputPost(OutputBuffer &OB, OutputFlags Flags) const override
The instances of the Type class are immutable: once they are created, they are never changed.
VariableSymbolNode * Variable
void outputTemplateParameters(OutputBuffer &OB, OutputFlags Flags) const
@ EHVectorVbaseCopyCtorIter
NodeArrayNode * Dimensions
@ ManVectorVbaseCopyCtorIter
virtual void output(OutputBuffer &OB, OutputFlags Flags) const =0
void output(OutputBuffer &OB, OutputFlags Flags) const override
constexpr std::underlying_type_t< E > Mask()
Get a bitmask with 1s in all places up to the high-order bit of E's largest value.
static void outputQualifiers(OutputBuffer &OB, Qualifiers Q, bool SpaceBefore, bool SpaceAfter)
virtual void outputPost(OutputBuffer &OB, OutputFlags Flags) const =0
void output(OutputBuffer &OB, OutputFlags Flags) const override
CallingConv CallConvention
(vector float) vec_cmpeq(*A, *B) C
void output(OutputBuffer &OB, OutputFlags Flags) const override
static void outputCallingConvention(OutputBuffer &OB, CallingConv CC)
void outputDimensionsImpl(OutputBuffer &OB, OutputFlags Flags) const
void outputPre(OutputBuffer &OB, OutputFlags Flags) const override
FunctionRefQualifier RefQualifier
void outputPre(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
void outputOneDimension(OutputBuffer &OB, OutputFlags Flags, Node *N) const
static void outputSpaceIfNecessary(OutputBuffer &OB)
void output(OutputBuffer &OB, OutputFlags Flags) const override
IdentifierNode * Identifier
std::string toString(OutputFlags Flags=OF_Default) const
void outputPre(OutputBuffer &OB, OutputFlags Flags) const override
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void output(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
NodeArrayNode * TemplateParams
std::array< int64_t, 3 > ThunkOffsets
@ VectorVbaseCopyCtorIter
void output(OutputBuffer &OB, OutputFlags Flags) const override
static bool outputQualifierIfPresent(OutputBuffer &OB, Qualifiers Q, Qualifiers Mask, bool NeedSpace)
void outputPre(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
void outputPre(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
@ LocalVftableCtorClosure
virtual void outputPre(OutputBuffer &OB, OutputFlags Flags) const =0
bool initializeOutputBuffer(char *Buf, size_t *N, OutputBuffer &OB, size_t InitSize)
void outputPost(OutputBuffer &OB, OutputFlags Flags) const override
QualifiedNameNode * ClassParent
#define OUTPUT_ENUM_CLASS_VALUE(Enum, Value, Desc)
void outputPost(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
static void outputSingleQualifier(OutputBuffer &OB, Qualifiers Q)
void output(OutputBuffer &OB, OutputFlags Flags) const override
void output(OutputBuffer &OB, OutputFlags Flags) const override
void outputPre(OutputBuffer &OB, OutputFlags Flags) const override