LLVM 19.0.0git
MCRelocationInfo.h
Go to the documentation of this file.
1//===- llvm/MC/MCRelocationInfo.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// This file declares the MCRelocationInfo class, which provides methods to
10// create MCExprs from relocations, either found in an object::ObjectFile
11// (object::RelocationRef), or provided through the C API.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_MC_MCDISASSEMBLER_MCRELOCATIONINFO_H
16#define LLVM_MC_MCDISASSEMBLER_MCRELOCATIONINFO_H
17
18namespace llvm {
19
20class MCContext;
21class MCExpr;
22
23/// Create MCExprs from relocations found in an object file.
25protected:
27
28public:
33
34 /// Create an MCExpr for the target-specific \p VariantKind.
35 /// The VariantKinds are defined in llvm-c/Disassembler.h.
36 /// Used by MCExternalSymbolizer.
37 /// \returns If possible, an MCExpr corresponding to VariantKind, else 0.
38 virtual const MCExpr *createExprForCAPIVariantKind(const MCExpr *SubExpr,
39 unsigned VariantKind);
40};
41
42} // end namespace llvm
43
44#endif // LLVM_MC_MCDISASSEMBLER_MCRELOCATIONINFO_H
Context object for machine code objects.
Definition: MCContext.h:81
Base class for the full range of assembler expressions which are needed for parsing.
Definition: MCExpr.h:35
Create MCExprs from relocations found in an object file.
MCRelocationInfo & operator=(const MCRelocationInfo &)=delete
MCRelocationInfo(const MCRelocationInfo &)=delete
virtual const MCExpr * createExprForCAPIVariantKind(const MCExpr *SubExpr, unsigned VariantKind)
Create an MCExpr for the target-specific VariantKind.
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18