LLVM 22.0.0git
MCSFrame.h
Go to the documentation of this file.
1//===- MCSFrame.h - Machine Code SFrame support ---------------------------===//
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// This file contains the declaration of MCSFrameEmitter to support emitting
10// sframe unwinding info from .cfi_* directives. It relies on FDEs and CIEs
11// created for Dwarf frame info, but emits that info in a different format.
12//
13// See https://sourceware.org/binutils/docs-2.41/sframe-spec.html
14//===----------------------------------------------------------------------===//
15
16#ifndef LLVM_MC_MCSFRAME_H
17#define LLVM_MC_MCSFRAME_H
18
20#include <cstdint>
21
22namespace llvm {
23
24class MCContext;
26class MCFragment;
27
29public:
30 // Emit the sframe section.
31 //
32 // \param Streamer - Emit into this stream.
33 static void emit(MCObjectStreamer &Streamer);
34
35 // Encode the FRE's function offset.
36 //
37 // \param C - Context.
38 // \param Offset - Offset to encode.
39 // \param Out - Destination of the encoding.
40 // \param FDEFrag - Frag that specifies the encoding format.
42 SmallVectorImpl<char> &Out, MCFragment *FDEFrag);
43};
44
45} // end namespace llvm
46#endif // LLVM_MC_MCSFRAME_H
This file defines the SmallVector class.
Context object for machine code objects.
Definition MCContext.h:83
Streaming object file generation interface.
static void emit(MCObjectStreamer &Streamer)
Definition MCSFrame.cpp:421
static void encodeFuncOffset(MCContext &C, uint64_t Offset, SmallVectorImpl< char > &Out, MCFragment *FDEFrag)
Definition MCSFrame.cpp:451
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
@ C
The default llvm calling convention, compatible with C.
Definition CallingConv.h:34
This is an optimization pass for GlobalISel generic memory operations.
@ Offset
Definition DWP.cpp:477