LLVM 22.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
12#include "llvm/ADT/ArrayRef.h"
16#include "llvm/Support/Error.h"
17
18namespace llvm {
19namespace codeview {
20class TypeIndex;
21class TypeCollection;
23struct CVMemberRecord;
24
26 VDS_BytesPresent, // The record bytes are passed into the visitation
27 // function. The algorithm should first deserialize them
28 // before passing them on through the pipeline.
29 VDS_BytesExternal // The record bytes are not present, and it is the
30 // responsibility of the visitor callback interface to
31 // supply the bytes.
32};
33
35 TypeVisitorCallbacks &Callbacks,
37LLVM_ABI Error visitTypeRecord(CVType &Record, TypeVisitorCallbacks &Callbacks,
39
41 TypeVisitorCallbacks &Callbacks,
44 TypeVisitorCallbacks &Callbacks);
45
47 TypeVisitorCallbacks &Callbacks);
48
50 TypeVisitorCallbacks &Callbacks,
53 TypeVisitorCallbacks &Callbacks);
54LLVM_ABI Error visitTypeStream(TypeCollection &Types,
55 TypeVisitorCallbacks &Callbacks);
56
57} // end namespace codeview
58} // end namespace llvm
59
60#endif // LLVM_DEBUGINFO_CODEVIEW_CVTYPEVISITOR_H
#define LLVM_ABI
Definition Compiler.h:213
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition ArrayRef.h:41
Lightweight error class with error context and mandatory checking.
Definition Error.h:159
A 32-bit type reference.
Definition TypeIndex.h:97
LLVM_ABI Error visitMemberRecord(CVMemberRecord Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
iterator_range< CVTypeArray::Iterator > CVTypeRange
Definition CVRecord.h:128
CVRecord< TypeLeafKind > CVType
Definition CVRecord.h:64
VarStreamArray< CVType > CVTypeArray
Definition CVRecord.h:127
LLVM_ABI Error visitMemberRecordStream(ArrayRef< uint8_t > FieldList, TypeVisitorCallbacks &Callbacks)
LLVM_ABI Error visitTypeStream(const CVTypeArray &Types, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
LLVM_ABI Error visitTypeRecord(CVType &Record, TypeIndex Index, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
This is an optimization pass for GlobalISel generic memory operations.