LLVM  14.0.0git
CVTypeVisitor.h
Go to the documentation of this file.
1 //===- CVTypeVisitor.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_CODEVIEW_CVTYPEVISITOR_H
10 #define LLVM_DEBUGINFO_CODEVIEW_CVTYPEVISITOR_H
11 
14 #include "llvm/Support/Error.h"
15 
16 namespace llvm {
17 namespace codeview {
18 class TypeCollection;
19 class TypeVisitorCallbacks;
20 
22  VDS_BytesPresent, // The record bytes are passed into the visitation
23  // function. The algorithm should first deserialize them
24  // before passing them on through the pipeline.
25  VDS_BytesExternal // The record bytes are not present, and it is the
26  // responsibility of the visitor callback interface to
27  // supply the bytes.
28 };
29 
31  TypeVisitorCallbacks &Callbacks,
33 Error visitTypeRecord(CVType &Record, TypeVisitorCallbacks &Callbacks,
35 
36 Error visitMemberRecord(CVMemberRecord Record, TypeVisitorCallbacks &Callbacks,
39  TypeVisitorCallbacks &Callbacks);
40 
42  TypeVisitorCallbacks &Callbacks);
43 
44 Error visitTypeStream(const CVTypeArray &Types, TypeVisitorCallbacks &Callbacks,
46 Error visitTypeStream(CVTypeRange Types, TypeVisitorCallbacks &Callbacks);
47 Error visitTypeStream(TypeCollection &Types, TypeVisitorCallbacks &Callbacks);
48 
49 } // end namespace codeview
50 } // end namespace llvm
51 
52 #endif // LLVM_DEBUGINFO_CODEVIEW_CVTYPEVISITOR_H
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AllocatorList.h:23
llvm::codeview::CVTypeArray
VarStreamArray< CVType > CVTypeArray
Definition: CVRecord.h:127
llvm::codeview::VisitorDataSource
VisitorDataSource
Definition: CVTypeVisitor.h:21
Error.h
llvm::codeview::VDS_BytesPresent
@ VDS_BytesPresent
Definition: CVTypeVisitor.h:22
llvm::codeview::visitMemberRecordStream
Error visitMemberRecordStream(ArrayRef< uint8_t > FieldList, TypeVisitorCallbacks &Callbacks)
Definition: CVTypeVisitor.cpp:270
llvm::codeview::VDS_BytesExternal
@ VDS_BytesExternal
Definition: CVTypeVisitor.h:25
llvm::codeview::visitTypeRecord
Error visitTypeRecord(CVType &Record, TypeIndex Index, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
Definition: CVTypeVisitor.cpp:218
llvm::lltok::Kind
Kind
Definition: LLToken.h:18
Index
uint32_t Index
Definition: ELFObjHandler.cpp:84
TypeRecord.h
llvm::codeview::visitMemberRecord
Error visitMemberRecord(CVMemberRecord Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
Definition: CVTypeVisitor.cpp:254
llvm::Record
Definition: Record.h:1486
llvm::Sched::Source
@ Source
Definition: TargetLowering.h:100
llvm::ArrayRef< uint8_t >
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition: Error.h:157
CVRecord.h
llvm::codeview::TypeLeafKind
TypeLeafKind
Duplicate copy of the above enum, but using the official CV names.
Definition: CodeView.h:33
llvm::codeview::visitTypeStream
Error visitTypeStream(const CVTypeArray &Types, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
Definition: CVTypeVisitor.cpp:232
llvm::codeview::CVType
CVRecord< TypeLeafKind > CVType
Definition: CVRecord.h:64
llvm::codeview::CVTypeRange
iterator_range< CVTypeArray::Iterator > CVTypeRange
Definition: CVRecord.h:128