LLVM 22.0.0git
SimpleTypeSerializer.h
Go to the documentation of this file.
1//===- SimpleTypeSerializer.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_SIMPLETYPESERIALIZER_H
10#define LLVM_DEBUGINFO_CODEVIEW_SIMPLETYPESERIALIZER_H
11
12#include "llvm/ADT/ArrayRef.h"
14#include <vector>
15
16namespace llvm {
17namespace codeview {
18class FieldListRecord;
19
21 std::vector<uint8_t> ScratchBuffer;
22
23public:
26
27 // This template is explicitly instantiated in the implementation file for all
28 // supported types. The method itself is ugly, so inlining it into the header
29 // file clutters an otherwise straightforward interface.
30 template <typename T> ArrayRef<uint8_t> serialize(T &Record);
31
32 // Don't allow serialization of field list records using this interface.
34};
35
36} // end namespace codeview
37} // end namespace llvm
38
39#endif // LLVM_DEBUGINFO_CODEVIEW_SIMPLETYPESERIALIZER_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
ArrayRef< uint8_t > serialize(const FieldListRecord &Record)=delete
ArrayRef< uint8_t > serialize(T &Record)
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18