|
LLVM 24.0.0git
|
#include "llvm/MC/MCAssembler.h"
Public Types | |
| using | SectionListType = SmallVector<MCSection *, 0> |
| using | const_iterator = pointee_iterator<SectionListType::const_iterator> |
Friends | |
| class | MCObjectWriter |
Definition at line 47 of file MCAssembler.h.
Definition at line 51 of file MCAssembler.h.
| using llvm::MCAssembler::SectionListType = SmallVector<MCSection *, 0> |
Definition at line 50 of file MCAssembler.h.
| MCAssembler::MCAssembler | ( | MCContext & | Context, |
| std::unique_ptr< MCAsmBackend > | Backend, | ||
| std::unique_ptr< MCCodeEmitter > | Emitter, | ||
| std::unique_ptr< MCObjectWriter > | Writer ) |
Construct a new assembler instance.
Definition at line 79 of file MCAssembler.cpp.
References if(), and llvm::move().
Referenced by MCAssembler(), and operator=().
|
delete |
References MCAssembler().
| void MCAssembler::addRelocDirective | ( | RelocDirective | RD | ) |
Definition at line 396 of file MCAssembler.cpp.
Referenced by llvm::MCObjectStreamer::emitRelocDirective().
|
inline |
Definition at line 212 of file MCAssembler.h.
| uint64_t MCAssembler::computeFragmentSize | ( | const MCFragment & | F | ) | const |
Compute the effective fragment size.
Definition at line 208 of file MCAssembler.cpp.
References assert(), llvm::cast(), F, llvm::MCFragment::FT_Align, llvm::MCFragment::FT_BoundaryAlign, llvm::MCFragment::FT_CVDefRange, llvm::MCFragment::FT_CVInlineLines, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Dwarf, llvm::MCFragment::FT_DwarfFrame, llvm::MCFragment::FT_Fill, llvm::MCFragment::FT_LEB, llvm::MCFragment::FT_Nops, llvm::MCFragment::FT_Org, llvm::MCFragment::FT_PrefAlign, llvm::MCFragment::FT_Relaxable, llvm::MCFragment::FT_SFrame, llvm::MCFragment::FT_SymbolId, getBackendPtr(), getFragmentOffset(), getSymbolOffset(), llvm_unreachable, recordError(), and Size.
| LLVM_DUMP_METHOD void MCAssembler::dump | ( | ) | const |
Definition at line 1190 of file MCAssembler.cpp.
References llvm::MCSection::dump(), llvm::errs(), F, LLVM_DUMP_METHOD, symbols(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::try_emplace().
Referenced by layout().
|
inline |
Definition at line 213 of file MCAssembler.h.
| void MCAssembler::Finish | ( | ) |
Finish - Do final processing and write the object to the output stream.
Writer is used for custom object writer (as the MCJIT does), if not specified it is automatically created from backend.
Definition at line 801 of file MCAssembler.cpp.
References assert(), getContext(), getWriter(), layout(), and llvm::MCObjectWriter::writeObject().
Referenced by llvm::MCObjectStreamer::finishImpl().
| void MCAssembler::flushPendingErrors | ( | ) | const |
Definition at line 1183 of file MCAssembler.cpp.
References reportError().
Referenced by layout(), and writeSectionData().
|
inline |
Definition at line 183 of file MCAssembler.h.
Referenced by llvm::MCAsmBaseStreamer::addEncodingComment(), llvm::SystemZHLASMAsmStreamer::addEncodingComment(), llvm::MCObjectStreamer::generateCompactUnwindEncodings(), layout(), llvm::LoongArchTargetELFStreamer::LoongArchTargetELFStreamer(), and llvm::RISCVTargetELFStreamer::RISCVTargetELFStreamer().
|
inline |
Definition at line 179 of file MCAssembler.h.
Referenced by computeFragmentSize(), layout(), reset(), and writeSectionData().
Definition at line 340 of file MCAssembler.cpp.
References A(), assert(), llvm::MCExpr::evaluateAsValue(), llvm::MCExpr::getLoc(), llvm::MCSymbol::getName(), llvm::MCSymbol::isCommon(), and reportError().
|
inline |
Definition at line 206 of file MCAssembler.h.
References assert().
|
inline |
Definition at line 177 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::emitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::MipsTargetELFStreamer::emitDirectiveCpsetup(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::MipsTargetELFStreamer::emitFrame(), llvm::MCELFStreamer::emitIdent(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), Finish(), llvm::MipsTargetELFStreamer::finish(), GetOptionalAbsDifference(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), layout(), llvm::MipsTargetELFStreamer::MipsTargetELFStreamer(), reportError(), and writeSectionData().
|
inline |
Definition at line 189 of file MCAssembler.h.
|
inline |
|
inline |
Definition at line 181 of file MCAssembler.h.
Referenced by reset(), and llvm::AMDGPUAsmPrinter::runOnMachineFunction().
|
inline |
Definition at line 147 of file MCAssembler.h.
References F.
Referenced by computeFragmentSize(), and getSectionAddressSize().
|
inline |
Definition at line 201 of file MCAssembler.h.
Definition at line 374 of file MCAssembler.cpp.
References assert(), llvm::MCSection::curFragList(), F, llvm::MCFragment::FT_Data, getFragmentOffset(), and llvm::MCSection::FragList::Tail.
Referenced by getSectionFileSize(), and writeSectionData().
Definition at line 380 of file MCAssembler.cpp.
References getSectionAddressSize(), and llvm::MCSection::isBssSection().
Referenced by writeSectionData().
|
inline |
Definition at line 203 of file MCAssembler.h.
Definition at line 334 of file MCAssembler.cpp.
References getSymbolOffsetImpl().
Definition at line 330 of file MCAssembler.cpp.
References getSymbolOffsetImpl().
Referenced by computeFragmentSize().
|
inline |
Definition at line 215 of file MCAssembler.h.
|
inline |
Definition at line 187 of file MCAssembler.h.
References MCObjectWriter.
Referenced by llvm::MCObjectStreamer::emitAddrsig(), llvm::MCObjectStreamer::emitAddrsigSym(), llvm::MCObjectStreamer::emitFileDirective(), Finish(), llvm::MCELFStreamer::getWriter(), llvm::MCGOFFStreamer::getWriter(), llvm::MCWinCOFFStreamer::getWriter(), llvm::MCXCOFFStreamer::getWriter(), and layout().
|
inline |
Definition at line 200 of file MCAssembler.h.
|
inline |
Definition at line 199 of file MCAssembler.h.
|
inline |
Definition at line 205 of file MCAssembler.h.
Check whether a given symbol has been flagged with .thumb_func.
Definition at line 117 of file MCAssembler.cpp.
References llvm::MCExpr::evaluateAsRelocatable(), llvm::MCValue::getAddSym(), and isThumbFunc().
Referenced by isThumbFunc().
| void MCAssembler::layout | ( | ) |
Definition at line 668 of file MCAssembler.cpp.
References _, assert(), llvm::MCFixup::create(), llvm::Data, data, DEBUG_WITH_TYPE, dump(), llvm::errs(), llvm::MCObjectWriter::executePostLayoutBinding(), F, Fixup, flushPendingErrors(), llvm::MCValue::getAddSym(), getBackend(), getBackendPtr(), llvm::MCValue::getConstant(), getContext(), llvm::MCFragment::getNext(), llvm::MCValue::getSubSym(), getWriter(), llvm::mc::isRelocRelocation(), llvm::List, llvm::Offset, llvm::MCContext::reportError(), and llvm::MCSection::setOrdinal().
Referenced by Finish().
|
delete |
References F, LLVM_ABI, and MCAssembler().
Definition at line 1179 of file MCAssembler.cpp.
References Msg.
Referenced by computeFragmentSize().
Definition at line 109 of file MCAssembler.cpp.
Referenced by llvm::MCObjectStreamer::changeSection().
Definition at line 387 of file MCAssembler.cpp.
References Changed.
Referenced by llvm::MCWinCOFFStreamer::changeSection(), llvm::MipsELFStreamer::createPendingLabelRelocs(), llvm::MCObjectStreamer::emitAssignment(), llvm::MCWinCOFFStreamer::emitCOFFSafeSEH(), llvm::MCWinCOFFStreamer::emitCOFFSymbolIndex(), llvm::MCWinCOFFStreamer::emitCOFFSymbolStorageClass(), llvm::MCWinCOFFStreamer::emitCOFFSymbolType(), llvm::MCELFStreamer::emitCommonSymbol(), llvm::MCWinCOFFStreamer::emitCommonSymbol(), llvm::MCXCOFFStreamer::emitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::RISCVTargetELFStreamer::emitDirectiveVariantCC(), llvm::MCObjectStreamer::emitLabel(), llvm::MipsTargetELFStreamer::emitLabel(), llvm::MCObjectStreamer::emitLabelAtPos(), llvm::MCELFStreamer::emitLocalCommonSymbol(), llvm::MCELFStreamer::emitSymbolAttribute(), llvm::MCWasmStreamer::emitSymbolAttribute(), llvm::MCWinCOFFStreamer::emitSymbolAttribute(), llvm::MCXCOFFStreamer::emitSymbolAttribute(), llvm::MCWinCOFFStreamer::emitWeakReference(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), and llvm::HexagonMCELFStreamer::HexagonMCEmitLocalCommonSymbol().
Definition at line 1175 of file MCAssembler.cpp.
References getContext(), Msg, and llvm::MCContext::reportError().
Referenced by flushPendingErrors(), getBaseSymbol(), and writeSectionData().
| void MCAssembler::reset | ( | ) |
Reuse an assembler instance.
Definition at line 91 of file MCAssembler.cpp.
References getBackendPtr(), getEmitterPtr(), llvm::MCAsmBackend::reset(), and llvm::MCCodeEmitter::reset().
|
inline |
Definition at line 210 of file MCAssembler.h.
Flag a function symbol as the target of a .thumb_func directive.
Definition at line 171 of file MCAssembler.h.
|
inline |
Definition at line 202 of file MCAssembler.h.
|
inline |
Definition at line 218 of file MCAssembler.h.
References llvm::make_pointee_range().
Referenced by dump().
| void MCAssembler::writeSectionData | ( | raw_ostream & | OS, |
| const MCSection * | Section ) const |
Emit the section contents to OS.
Definition at line 603 of file MCAssembler.cpp.
References llvm::any_of(), assert(), llvm::cast(), F, flushPendingErrors(), llvm::MCFragment::FT_Align, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Fill, llvm::MCFragment::FT_Org, llvm::MCFragment::FT_PrefAlign, llvm::MCFragment::FT_Relaxable, getBackendPtr(), getContext(), getSectionAddressSize(), getSectionFileSize(), llvm::MCSection::isBssSection(), reportError(), llvm::reportFatalInternalError(), llvm::raw_ostream::tell(), and writeFragment().
|
friend |
Definition at line 49 of file MCAssembler.h.
References MCObjectWriter.
Referenced by getWriter(), and MCObjectWriter.