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,constMCFragment *Fragment,constMCFixup &Fixup,MCValueTarget,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. | |
![]() | |
MCObjectWriter (constMCObjectWriter &)=delete | |
MCObjectWriter & | operator= (constMCObjectWriter &)=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 (constMCAssembler &Asm,constMCSymbolRefExpr *A,constMCSymbolRefExpr *B,bool InSet)const |
Check whether the difference (A - B) between two symbol references is fully resolved. | |
virtualbool | isSymbolRefDifferenceFullyResolvedImpl (constMCAssembler &Asm,constMCSymbol &SymA,constMCFragment &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 duringwriteObject(). | |
bool | getEmitAddrsigSection () |
void | addAddrsigSymbol (constMCSymbol *Sym) |
Record the given symbol in the address-significance table to be written diringwriteObject(). | |
std::vector<constMCSymbol * > & | getAddrsigSyms () |
SmallVector<CGProfileEntry, 0 > & | getCGProfile () |
bool | getSubsectionsViaSymbols ()const |
void | setSubsectionsViaSymbols (boolValue) |
Additional Inherited Members | |
![]() | |
MCObjectWriter ()=default | |
![]() | |
SmallVector< std::pair< std::string, size_t >, 0 > | FileNames |
List of declared file names. | |
std::string | CompilerVersion |
std::vector<constMCSymbol * > | AddrsigSyms |
bool | EmitAddrsigSection = false |
bool | SubsectionsViaSymbols = false |
SmallVector<CGProfileEntry, 0 > | CGProfile |
Definition at line36 of fileMCDXContainerWriter.h.
| inline |
Definition at line41 of fileMCDXContainerWriter.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 duringwriteObject().
Implementsllvm::MCObjectWriter.
Definition at line45 of fileMCDXContainerWriter.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.
Implementsllvm::MCObjectWriter.
Definition at line21 of fileMCDXContainerWriter.cpp.
Referencesllvm::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(), andllvm::raw_ostream::write_zeros().