LLVM 20.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 | setIncrementalLinkerCompatible (bool Value) |
void | executePostLayoutBinding (MCAssembler &Asm) override |
Perform any late binding of symbols (for example, to assign symbol indices for use when generating relocations). | |
bool | isSymbolRefDifferenceFullyResolvedImpl (const MCAssembler &Asm, const MCSymbol &SymA, const MCFragment &FB, bool InSet, bool IsPCRel) const override |
void | recordRelocation (MCAssembler &Asm, const MCFragment *Fragment, const MCFixup &Fixup, MCValue Target, uint64_t &FixedValue) override |
Record a relocation entry. | |
uint64_t | writeObject (MCAssembler &Asm) override |
Write the object file and returns the number of bytes written. | |
int | getSectionNumber (const MCSection &Section) const |
![]() | |
MCObjectWriter (const MCObjectWriter &)=delete | |
MCObjectWriter & | operator= (const MCObjectWriter &)=delete |
virtual | ~MCObjectWriter () |
virtual void | reset () |
lifetime management | |
bool | isSymbolRefDifferenceFullyResolved (const MCAssembler &Asm, const MCSymbolRefExpr *A, const MCSymbolRefExpr *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 (MCAssembler &Asm, 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 | |
![]() | |
MCObjectWriter ()=default | |
![]() | |
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 198 of file WinCOFFObjectWriter.cpp.
WinCOFFObjectWriter::WinCOFFObjectWriter | ( | std::unique_ptr< MCWinCOFFObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS, | ||
raw_pwrite_stream & | DwoOS | ||
) |
Definition at line 203 of file WinCOFFObjectWriter.cpp.
|
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 1180 of file WinCOFFObjectWriter.cpp.
Definition at line 1202 of file WinCOFFObjectWriter.cpp.
Referenced by MCCOFFSectionNumberTargetExpr::evaluateAsRelocatableImpl().
|
overridevirtual |
Reimplemented from llvm::MCObjectWriter.
Definition at line 1165 of file WinCOFFObjectWriter.cpp.
References llvm::MCFragment::getParent(), llvm::MCSymbol::getSection(), 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().
Implements llvm::MCObjectWriter.
Definition at line 1186 of file WinCOFFObjectWriter.cpp.
References assert(), Fixup, llvm::MCFragment::getParent(), and isDwoSection().
|
overridevirtual |
lifetime management
Reimplemented from llvm::MCObjectWriter.
Definition at line 1157 of file WinCOFFObjectWriter.cpp.
References llvm::MCObjectWriter::reset().
|
inline |
Definition at line 63 of file MCWinCOFFObjectWriter.h.
Referenced by llvm::MCWinCOFFStreamer::MCWinCOFFStreamer().
|
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 1195 of file WinCOFFObjectWriter.cpp.
|
friend |
Definition at line 49 of file MCWinCOFFObjectWriter.h.