LLVM 20.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"
13#include <vector>
14
15namespace llvm {
16namespace codeview {
17class FieldListRecord;
18
20 std::vector<uint8_t> ScratchBuffer;
21
22public:
25
26 // This template is explicitly instantiated in the implementation file for all
27 // supported types. The method itself is ugly, so inlining it into the header
28 // file clutters an otherwise straightforward interface.
29 template <typename T> ArrayRef<uint8_t> serialize(T &Record);
30
31 // Don't allow serialization of field list records using this interface.
33};
34
35} // end namespace codeview
36} // end namespace llvm
37
38#endif // LLVM_DEBUGINFO_CODEVIEW_SIMPLETYPESERIALIZER_H
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