LLVM 20.0.0git
|
#include "llvm/MC/MCDXContainerWriter.h"
Public Member Functions | |
DXContainerObjectWriter (std::unique_ptr< MCDXContainerTargetWriter > MOTW, raw_pwrite_stream &OS) | |
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. | |
Public Member Functions inherited from llvm::MCObjectWriter | |
MCObjectWriter (const MCObjectWriter &)=delete | |
MCObjectWriter & | operator= (const MCObjectWriter &)=delete |
virtual | ~MCObjectWriter () |
virtual void | reset () |
lifetime management | |
virtual void | executePostLayoutBinding (MCAssembler &Asm) |
Perform any late binding of symbols (for example, to assign symbol indices for use when generating relocations). | |
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. | |
virtual bool | isSymbolRefDifferenceFullyResolvedImpl (const MCAssembler &Asm, const MCSymbol &SymA, const MCFragment &FB, bool InSet, bool IsPCRel) const |
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) |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::MCObjectWriter | |
MCObjectWriter ()=default | |
Protected Attributes inherited from llvm::MCObjectWriter | |
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 36 of file MCDXContainerWriter.h.
|
inline |
Definition at line 41 of file MCDXContainerWriter.h.
|
inlineoverridevirtual |
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 45 of file MCDXContainerWriter.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 21 of file MCDXContainerWriter.cpp.
References llvm::alignTo(), assert(), llvm::VersionTuple::getMajor(), llvm::VersionTuple::getMinor(), llvm::dxbc::ProgramHeader::getVersion(), llvm::sys::IsBigEndianHost, llvm::Offset, llvm::offsetToAlignment(), llvm::support::endian::Writer::OS, llvm::Triple::Pixel, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), Size, llvm::raw_ostream::tell(), llvm::Version, llvm::support::endian::Writer::write(), and llvm::raw_ostream::write_zeros().