LLVM 22.0.0git
|
#include "llvm/MC/MCWinCOFFObjectWriter.h"
Public Member Functions | |
WinCOFFObjectWriter (std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS) | |
WinCOFFObjectWriter (std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS) | |
void | reset () override |
lifetime management | |
void | setAssembler (MCAssembler *Asm) override |
void | setIncrementalLinkerCompatible (bool Value) |
void | executePostLayoutBinding () override |
Perform any late binding of symbols (for example, to assign symbol indices for use when generating relocations). | |
bool | isSymbolRefDifferenceFullyResolvedImpl (const MCSymbol &SymA, const MCFragment &FB, bool InSet, bool IsPCRel) const override |
void | recordRelocation (const MCFragment &F, const MCFixup &Fixup, MCValue Target, uint64_t &FixedValue) override |
Record a relocation entry. | |
uint64_t | writeObject () override |
Write the object file and returns the number of bytes written. | |
int | getSectionNumber (const MCSection &Section) const |
Public Member Functions inherited from llvm::MCObjectWriter | |
MCObjectWriter (const MCObjectWriter &)=delete | |
MCObjectWriter & | operator= (const MCObjectWriter &)=delete |
virtual | ~MCObjectWriter () |
MCContext & | getContext () const |
bool | isSymbolRefDifferenceFullyResolved (const MCSymbol &A, const MCSymbol &B, bool InSet) const |
Check whether the difference (A - B) between two symbol references is fully resolved. | |
MutableArrayRef< std::pair< std::string, size_t > > | getFileNames () |
void | addFileName (StringRef FileName) |
void | setCompilerVersion (StringRef CompilerVers) |
void | emitAddrsigSection () |
Tell the object writer to emit an address-significance table during writeObject(). | |
bool | getEmitAddrsigSection () |
void | addAddrsigSymbol (const MCSymbol *Sym) |
Record the given symbol in the address-significance table to be written diring writeObject(). | |
std::vector< const MCSymbol * > & | getAddrsigSyms () |
SmallVector< CGProfileEntry, 0 > & | getCGProfile () |
bool | getSubsectionsViaSymbols () const |
void | setSubsectionsViaSymbols (bool Value) |
Friends | |
class | WinCOFFWriter |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::MCObjectWriter | |
MCObjectWriter ()=default | |
Protected Attributes inherited from llvm::MCObjectWriter | |
MCAssembler * | Asm = nullptr |
SmallVector< std::pair< std::string, size_t >, 0 > | FileNames |
List of declared file names. | |
std::string | CompilerVersion |
std::vector< const MCSymbol * > | AddrsigSyms |
bool | EmitAddrsigSection = false |
bool | SubsectionsViaSymbols = false |
SmallVector< CGProfileEntry, 0 > | CGProfile |
Definition at line 48 of file MCWinCOFFObjectWriter.h.
WinCOFFObjectWriter::WinCOFFObjectWriter | ( | std::unique_ptr< MCWinCOFFObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS ) |
Definition at line 199 of file WinCOFFObjectWriter.cpp.
References llvm::move(), and WinCOFFWriter.
WinCOFFObjectWriter::WinCOFFObjectWriter | ( | std::unique_ptr< MCWinCOFFObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS, | ||
raw_pwrite_stream & | DwoOS ) |
Definition at line 204 of file WinCOFFObjectWriter.cpp.
References llvm::move(), and WinCOFFWriter.
|
overridevirtual |
Perform any late binding of symbols (for example, to assign symbol indices for use when generating relocations).
This routine is called by the assembler after layout and relaxation is complete.
Reimplemented from llvm::MCObjectWriter.
Definition at line 1201 of file WinCOFFObjectWriter.cpp.
Definition at line 1226 of file WinCOFFObjectWriter.cpp.
|
overridevirtual |
Reimplemented from llvm::MCObjectWriter.
Definition at line 1186 of file WinCOFFObjectWriter.cpp.
References llvm::MCFragment::getParent(), llvm::MCSymbol::getSection(), getType(), llvm::COFF::IMAGE_SYM_DTYPE_FUNCTION, and llvm::COFF::SCT_COMPLEX_TYPE_SHIFT.
|
overridevirtual |
Record a relocation entry.
This routine is called by the assembler after layout and relaxation, and post layout binding. The implementation is responsible for storing information about the relocation so that it can be emitted during writeObject().
Reimplemented from llvm::MCObjectWriter.
Definition at line 1207 of file WinCOFFObjectWriter.cpp.
References assert(), F, Fixup, and isDwoSection().
|
overridevirtual |
lifetime management
Reimplemented from llvm::MCObjectWriter.
Definition at line 1171 of file WinCOFFObjectWriter.cpp.
References llvm::MCObjectWriter::reset().
|
overridevirtual |
Reimplemented from llvm::MCObjectWriter.
Definition at line 1179 of file WinCOFFObjectWriter.cpp.
References llvm::MCObjectWriter::Asm, and llvm::MCObjectWriter::setAssembler().
|
inline |
Definition at line 64 of file MCWinCOFFObjectWriter.h.
|
overridevirtual |
Write the object file and returns the number of bytes written.
This routine is called by the assembler after layout and relaxation is complete, fixups have been evaluated and applied, and relocations generated.
Implements llvm::MCObjectWriter.
Definition at line 1214 of file WinCOFFObjectWriter.cpp.
References llvm::MCObjectWriter::getContext().
|
friend |
Definition at line 49 of file MCWinCOFFObjectWriter.h.
References llvm::MCObjectWriter::Asm, and WinCOFFWriter.
Referenced by WinCOFFObjectWriter(), WinCOFFObjectWriter(), and WinCOFFWriter.