LLVM 22.0.0git
llvm::WinCOFFObjectWriter Class Referencefinal

#include "llvm/MC/MCWinCOFFObjectWriter.h"

Inheritance diagram for llvm::WinCOFFObjectWriter:
[legend]

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
MCObjectWriteroperator= (const MCObjectWriter &)=delete
virtual ~MCObjectWriter ()
MCContextgetContext () 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
MCAssemblerAsm = 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

Detailed Description

Definition at line 48 of file MCWinCOFFObjectWriter.h.

Constructor & Destructor Documentation

◆ WinCOFFObjectWriter() [1/2]

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() [2/2]

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.

Member Function Documentation

◆ executePostLayoutBinding()

void WinCOFFObjectWriter::executePostLayoutBinding ( )
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.

◆ getSectionNumber()

int WinCOFFObjectWriter::getSectionNumber ( const MCSection & Section) const

Definition at line 1226 of file WinCOFFObjectWriter.cpp.

◆ isSymbolRefDifferenceFullyResolvedImpl()

bool WinCOFFObjectWriter::isSymbolRefDifferenceFullyResolvedImpl ( const MCSymbol & SymA,
const MCFragment & FB,
bool InSet,
bool IsPCRel ) const
overridevirtual

◆ recordRelocation()

void WinCOFFObjectWriter::recordRelocation ( const MCFragment & F,
const MCFixup & Fixup,
MCValue Target,
uint64_t & FixedValue )
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().

◆ reset()

void WinCOFFObjectWriter::reset ( )
overridevirtual

lifetime management

Reimplemented from llvm::MCObjectWriter.

Definition at line 1171 of file WinCOFFObjectWriter.cpp.

References llvm::MCObjectWriter::reset().

◆ setAssembler()

void WinCOFFObjectWriter::setAssembler ( MCAssembler * Asm)
overridevirtual

◆ setIncrementalLinkerCompatible()

void llvm::WinCOFFObjectWriter::setIncrementalLinkerCompatible ( bool Value)
inline

Definition at line 64 of file MCWinCOFFObjectWriter.h.

◆ writeObject()

uint64_t WinCOFFObjectWriter::writeObject ( )
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().

◆ WinCOFFWriter

friend class WinCOFFWriter
friend

The documentation for this class was generated from the following files: