LLVM: llvm::MCObjectWriter Class Reference (original) (raw)

Defines the object file and target independent interfaces used by the assembler backend to write native file format object files. More...

#include "[llvm/MC/MCObjectWriter.h](MCObjectWriter%5F8h%5Fsource.html)"

Public Member Functions
MCObjectWriter (const MCObjectWriter &)=delete
MCObjectWriter & operator= (const MCObjectWriter &)=delete
virtual ~MCObjectWriter ()
virtual void setAssembler (MCAssembler *A)
MCContext & getContext () const
virtual void reset ()
lifetime management
High-Level API
virtual void executePostLayoutBinding ()
Perform any late binding of symbols (for example, to assign symbol indices for use when generating relocations).
virtual void recordRelocation (const MCFragment &F, const MCFixup &Fixup, MCValue Target, uint64_t &FixedValue)
Record a relocation entry.
bool isSymbolRefDifferenceFullyResolved (const MCSymbol &A, const MCSymbol &B, bool InSet) const
Check whether the difference (A - B) between two symbol references is fully resolved.
virtual bool isSymbolRefDifferenceFullyResolvedImpl (const MCSymbol &SymA, const MCFragment &FB, bool InSet, bool IsPCRel) const
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)
virtual uint64_t writeObject ()=0
Write the object file and returns the number of bytes written.
Protected Member Functions
Protected Attributes
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

Defines the object file and target independent interfaces used by the assembler backend to write native file format object files.

The object writer contains a few callbacks used by the assembler to allow the object writer to modify the assembler data structures at appropriate points. Once assembly is complete, the object writer is given the MCAssembler instance, which contains all the symbol and section data which should be emitted as part of writeObject().

Definition at line 34 of file MCObjectWriter.h.

llvm::MCObjectWriter::MCObjectWriter ( ) protecteddefault

Referenced by MCObjectWriter(), and operator=().

MCObjectWriter() [2/2]

References MCObjectWriter().

~MCObjectWriter()

MCObjectWriter::~MCObjectWriter ( ) virtualdefault

addAddrsigSymbol()

void llvm::MCObjectWriter::addAddrsigSymbol ( const MCSymbol * Sym) inline

addFileName()

void MCObjectWriter::addFileName ( StringRef FileName )

emitAddrsigSection()

void llvm::MCObjectWriter::emitAddrsigSection ( ) inline

executePostLayoutBinding()

virtual void llvm::MCObjectWriter::executePostLayoutBinding ( ) inlinevirtual

getAddrsigSyms()

std::vector< const MCSymbol * > & llvm::MCObjectWriter::getAddrsigSyms ( ) inline

getCGProfile()

getContext()

MCContext & MCObjectWriter::getContext ( ) const

getEmitAddrsigSection()

bool llvm::MCObjectWriter::getEmitAddrsigSection ( ) inline

getFileNames()

MutableArrayRef< std::pair< std::string, size_t > > llvm::MCObjectWriter::getFileNames ( ) inline

getSubsectionsViaSymbols()

bool llvm::MCObjectWriter::getSubsectionsViaSymbols ( ) const inline

isSymbolRefDifferenceFullyResolved()

isSymbolRefDifferenceFullyResolvedImpl()

operator=()

References MCObjectWriter().

recordRelocation()

reset()

void MCObjectWriter::reset ( ) virtual

setAssembler()

virtual void llvm::MCObjectWriter::setAssembler ( MCAssembler * A) inlinevirtual

setCompilerVersion()

void llvm::MCObjectWriter::setCompilerVersion ( StringRef CompilerVers) inline

setSubsectionsViaSymbols()

void llvm::MCObjectWriter::setSubsectionsViaSymbols ( bool Value) inline

writeObject()

virtual uint64_t llvm::MCObjectWriter::writeObject ( ) pure virtual

AddrsigSyms

Asm

Definition at line 36 of file MCObjectWriter.h.

Referenced by addFileName(), llvm::MachObjectWriter::bindIndirectSymbols(), llvm::MachObjectWriter::computeSectionAddresses(), llvm::MachObjectWriter::computeSymbolTable(), llvm::ELFObjectWriter::executePostLayoutBinding(), llvm::MachObjectWriter::executePostLayoutBinding(), getContext(), llvm::MachObjectWriter::getFragmentAddress(), llvm::MachObjectWriter::getPaddingSize(), llvm::MachObjectWriter::getSymbolAddress(), llvm::MachObjectWriter::populateAddrSigSection(), llvm::ELFObjectWriter::recordRelocation(), llvm::MachObjectWriter::recordRelocation(), llvm::ELFObjectWriter::setAssembler(), llvm::MachObjectWriter::setAssembler(), setAssembler(), llvm::WinCOFFObjectWriter::setAssembler(), llvm::WinCOFFObjectWriter::WinCOFFWriter, llvm::MachObjectWriter::writeNlist(), llvm::DXContainerObjectWriter::writeObject(), llvm::ELFObjectWriter::writeObject(), llvm::GOFFObjectWriter::writeObject(), llvm::MachObjectWriter::writeObject(), and llvm::MachObjectWriter::writeSection().

CGProfile

CompilerVersion

std::string llvm::MCObjectWriter::CompilerVersion protected

EmitAddrsigSection

bool llvm::MCObjectWriter::EmitAddrsigSection = false protected

FileNames

SmallVector<std::pair<std::string, size_t>, 0> llvm::MCObjectWriter::FileNames protected

SubsectionsViaSymbols

bool llvm::MCObjectWriter::SubsectionsViaSymbols = false protected

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