LLVM 22.0.0git
|
#include "llvm/MC/MCDXContainerWriter.h"
Public Member Functions | |
DXContainerObjectWriter (std::unique_ptr< MCDXContainerTargetWriter > MOTW, raw_pwrite_stream &OS) | |
uint64_t | writeObject () override |
Write the object file and returns the number of bytes written. | |
![]() | |
MCObjectWriter (const MCObjectWriter &)=delete | |
MCObjectWriter & | operator= (const MCObjectWriter &)=delete |
virtual | ~MCObjectWriter () |
virtual void | setAssembler (MCAssembler *A) |
MCContext & | getContext () const |
virtual void | reset () |
lifetime management | |
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) |
Additional Inherited Members | |
![]() | |
MCObjectWriter ()=default | |
![]() | |
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 36 of file MCDXContainerWriter.h.
|
inline |
Definition at line 41 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(), llvm::MCObjectWriter::Asm, assert(), llvm::MCObjectWriter::getContext(), llvm::VersionTuple::getMajor(), llvm::VersionTuple::getMinor(), llvm::MCAssembler::getSectionAddressSize(), llvm::MCContext::getTargetTriple(), 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(), llvm::raw_ostream::write_zeros(), and llvm::MCAssembler::writeSectionData().