|
LLVM
4.0.0
|
#include <MCAssembler.h>
Classes | |
| struct | VersionMinInfoType |
| MachO specific deployment target version info. More... | |
Public Types | |
| typedef std::vector< MCSection * > | SectionListType |
| typedef std::vector< const MCSymbol * > | SymbolDataListType |
| typedef pointee_iterator < SectionListType::const_iterator > | const_iterator |
| typedef pointee_iterator < SectionListType::iterator > | iterator |
| typedef pointee_iterator < SymbolDataListType::const_iterator > | const_symbol_iterator |
| typedef pointee_iterator < SymbolDataListType::iterator > | symbol_iterator |
| typedef iterator_range < symbol_iterator > | symbol_range |
| typedef iterator_range < const_symbol_iterator > | const_symbol_range |
| typedef std::vector < IndirectSymbolData > ::const_iterator | const_indirect_symbol_iterator |
| typedef std::vector < IndirectSymbolData > ::iterator | indirect_symbol_iterator |
| typedef std::vector < DataRegionData > ::const_iterator | const_data_region_iterator |
| typedef std::vector < DataRegionData >::iterator | data_region_iterator |
Friends | |
| class | MCAsmLayout |
Definition at line 57 of file MCAssembler.h.
| typedef std::vector<DataRegionData>::const_iterator llvm::MCAssembler::const_data_region_iterator |
Definition at line 79 of file MCAssembler.h.
| typedef std::vector<IndirectSymbolData>::const_iterator llvm::MCAssembler::const_indirect_symbol_iterator |
Definition at line 75 of file MCAssembler.h.
| typedef pointee_iterator<SectionListType::const_iterator> llvm::MCAssembler::const_iterator |
Definition at line 64 of file MCAssembler.h.
| typedef pointee_iterator<SymbolDataListType::const_iterator> llvm::MCAssembler::const_symbol_iterator |
Definition at line 68 of file MCAssembler.h.
Definition at line 72 of file MCAssembler.h.
| typedef std::vector<DataRegionData>::iterator llvm::MCAssembler::data_region_iterator |
Definition at line 80 of file MCAssembler.h.
| typedef std::vector<IndirectSymbolData>::iterator llvm::MCAssembler::indirect_symbol_iterator |
Definition at line 76 of file MCAssembler.h.
| typedef pointee_iterator<SectionListType::iterator> llvm::MCAssembler::iterator |
Definition at line 65 of file MCAssembler.h.
| typedef std::vector<MCSection *> llvm::MCAssembler::SectionListType |
Definition at line 61 of file MCAssembler.h.
| typedef pointee_iterator<SymbolDataListType::iterator> llvm::MCAssembler::symbol_iterator |
Definition at line 69 of file MCAssembler.h.
Definition at line 71 of file MCAssembler.h.
| typedef std::vector<const MCSymbol *> llvm::MCAssembler::SymbolDataListType |
Definition at line 62 of file MCAssembler.h.
| MCAssembler::MCAssembler | ( | MCContext & | Context, |
| MCAsmBackend & | Backend, | ||
| MCCodeEmitter & | Emitter, | ||
| MCObjectWriter & | Writer | ||
| ) |
Construct a new assembler instance.
Definition at line 68 of file MCAssembler.cpp.
References llvm::MCAssembler::VersionMinInfoType::Major.
| MCAssembler::~MCAssembler | ( | ) |
Definition at line 76 of file MCAssembler.cpp.
|
inline |
Definition at line 405 of file MCAssembler.h.
References llvm::is_contained().
Referenced by llvm::MCWinCOFFStreamer::EmitFileDirective(), and llvm::MCELFStreamer::EmitFileDirective().
|
inline |
Definition at line 304 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::computeSymbolTable(), and dump().
|
inline |
Definition at line 305 of file MCAssembler.h.
| uint64_t MCAssembler::computeFragmentSize | ( | const MCAsmLayout & | Layout, |
| const MCFragment & | F | ||
| ) | const |
Compute the effective fragment size assuming it is laid out at the given SectionAddress and FragmentOffset.
Definition at line 245 of file MCAssembler.cpp.
References llvm::MCExpr::evaluateAsValue(), F, llvm::MCFragment::FT_Align, llvm::MCFragment::FT_CompactEncodedInst, llvm::MCFragment::FT_CVDefRange, llvm::MCFragment::FT_CVInlineLines, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Dummy, llvm::MCFragment::FT_Dwarf, llvm::MCFragment::FT_DwarfFrame, llvm::MCFragment::FT_Fill, llvm::MCFragment::FT_LEB, llvm::MCFragment::FT_Org, llvm::MCFragment::FT_Relaxable, llvm::MCFragment::FT_SafeSEH, llvm::MCAlignFragment::getAlignment(), getBackend(), getContext(), llvm::MCAsmLayout::getFragmentOffset(), llvm::MCFragment::getKind(), llvm::MCOrgFragment::getLoc(), llvm::MCAlignFragment::getMaxBytesToEmit(), llvm::MCAsmBackend::getMinimumNopSize(), llvm::MCOrgFragment::getOffset(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCAsmLayout::getSymbolOffset(), llvm::MCAlignFragment::hasEmitNops(), llvm_unreachable, llvm::OffsetToAlignment(), and llvm::MCContext::reportError().
Referenced by llvm::MCAsmLayout::getSectionAddressSize(), llvm::MCAsmLayout::layoutFragment(), and writeFragment().
|
inline |
Definition at line 372 of file MCAssembler.h.
|
inline |
Definition at line 373 of file MCAssembler.h.
|
inline |
Definition at line 377 of file MCAssembler.h.
|
inline |
Definition at line 378 of file MCAssembler.h.
|
inline |
Definition at line 382 of file MCAssembler.h.
| LLVM_DUMP_METHOD void MCAssembler::dump | ( | ) |
Definition at line 451 of file MCFragment.cpp.
References begin(), end(), llvm::errs(), symbol_begin(), and symbol_end().
Referenced by layout().
|
inline |
Definition at line 307 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::computeSymbolTable(), and dump().
|
inline |
Definition at line 308 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 724 of file MCAssembler.cpp.
References llvm::MCObjectWriter::getStream(), getWriter(), layout(), llvm::raw_ostream::tell(), and llvm::MCObjectWriter::writeObject().
Referenced by llvm::MCObjectStreamer::FinishImpl().
Find the symbol which defines the atom containing the given symbol, or null if there is no such symbol.
Definition at line 150 of file MCAssembler.cpp.
References llvm::MCContext::getAsmInfo(), llvm::MCFragment::getAtom(), getContext(), llvm::MCSymbol::getFragment(), llvm::MCFragment::getParent(), llvm::MCSymbol::isInSection(), llvm::MCAsmInfo::isSectionAtomizableBySymbols(), and isSymbolLinkerVisible().
|
inline |
Definition at line 260 of file MCAssembler.h.
Referenced by computeFragmentSize(), llvm::MCELFStreamer::EmitAssemblerFlag(), llvm::MCObjectStreamer::EmitInstruction(), llvm::MCObjectStreamer::EmitRelocDirective(), llvm::MachObjectWriter::isFixupKindPCRel(), layout(), reset(), writeFragment(), writeFragmentPadding(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 293 of file MCAssembler.h.
Referenced by llvm::computeBundlePadding(), llvm::MCELFStreamer::EmitBundleAlignMode(), llvm::MCAsmLayout::layoutFragment(), setSectionAlignmentForBundling(), and writeFragmentPadding().
|
inline |
Definition at line 258 of file MCAssembler.h.
Referenced by computeFragmentSize(), computeLabelDiff(), llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::MipsTargetELFStreamer::emitDirectiveCpsetup(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::MipsTargetELFStreamer::emitFrame(), llvm::MCELFStreamer::EmitIdent(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), llvm::CodeViewContext::encodeDefRange(), llvm::AVRMCExpr::evaluateAsRelocatableImpl(), llvm::PPCMCExpr::evaluateAsRelocatableImpl(), llvm::MipsTargetELFStreamer::finish(), getAtom(), llvm::MCAsmLayout::getBaseSymbol(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), layout(), llvm::MipsTargetELFStreamer::MipsTargetELFStreamer(), llvm::ARMAsmBackend::processFixupValue(), llvm::AVRAsmBackend::processFixupValue(), and llvm::MipsAsmBackend::processFixupValue().
|
inline |
Definition at line 370 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 266 of file MCAssembler.h.
Referenced by llvm::MCObjectStreamer::EmitDwarfAdvanceLineAddr().
|
inline |
ELF e_header flags.
Definition at line 230 of file MCAssembler.h.
Referenced by llvm::AVRELFStreamer::AVRELFStreamer(), llvm::MipsTargetELFStreamer::emitDirectiveAbiCalls(), llvm::MipsTargetELFStreamer::emitDirectiveNaN2008(), llvm::MipsTargetELFStreamer::emitDirectiveNaNLegacy(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic0(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic2(), llvm::MipsTargetELFStreamer::emitDirectiveSetMips16(), llvm::MipsTargetELFStreamer::emitDirectiveSetNoReorder(), llvm::MipsTargetELFStreamer::finish(), llvm::MipsTargetELFStreamer::MipsTargetELFStreamer(), and llvm::MipsTargetELFStreamer::setUsesMicroMips().
|
inline |
Definition at line 262 of file MCAssembler.h.
Referenced by llvm::MCWinCOFFStreamer::EmitInstToData(), llvm::MCObjectStreamer::EmitInstToFragment(), reset(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 403 of file MCAssembler.h.
|
inline |
Definition at line 335 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitSymbolAttribute().
|
inline |
Definition at line 359 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 391 of file MCAssembler.h.
Referenced by getLOHContainer(), reset(), and llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 392 of file MCAssembler.h.
References getLOHContainer().
|
inline |
Definition at line 288 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitBundleUnlock(), llvm::MCObjectStreamer::EmitInstruction(), llvm::MCObjectStreamer::getOrCreateDataFragment(), and llvm::MCAsmLayout::layoutFragment().
|
inline |
Definition at line 278 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl().
|
inline |
MachO deployment target version information.
Definition at line 234 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 264 of file MCAssembler.h.
Referenced by Finish(), layout(), reset(), writeFragment(), writeSectionData(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 339 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::bindIndirectSymbols().
|
inline |
Definition at line 342 of file MCAssembler.h.
|
inline |
Definition at line 346 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::bindIndirectSymbols().
|
inline |
Definition at line 349 of file MCAssembler.h.
|
inline |
Definition at line 353 of file MCAssembler.h.
|
inline |
Definition at line 291 of file MCAssembler.h.
Referenced by llvm::MCObjectStreamer::EmitInstruction(), llvm::MCObjectStreamer::getOrCreateDataFragment(), llvm::MCAsmLayout::layoutFragment(), setSectionAlignmentForBundling(), and writeFragmentPadding().
|
inline |
Definition at line 281 of file MCAssembler.h.
Check whether a particular symbol is visible to the linker and is required in the symbol table, or whether it can be discarded by the assembler.
This also effects whether the assembler treats the label as potentially defining a separate atom.
Definition at line 135 of file MCAssembler.cpp.
References llvm::MCSymbol::isInSection(), llvm::MCSymbol::isTemporary(), and llvm::MCSymbol::isUsedInReloc().
Referenced by llvm::MachObjectWriter::computeSymbolTable(), and getAtom().
Check whether a given symbol has been flagged with .thumb_func.
Definition at line 110 of file MCAssembler.cpp.
References llvm::dyn_cast(), llvm::MCSymbolRefExpr::getKind(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCSymbol::getVariableValue(), llvm::MCSymbol::isVariable(), and llvm::MCSymbolRefExpr::VK_None.
Referenced by llvm::ARMAsmBackend::processFixupValue().
| void MCAssembler::layout | ( | MCAsmLayout & | Layout | ) |
Definition at line 642 of file MCAssembler.cpp.
References llvm::MCAsmBackend::applyFixup(), llvm::MutableArrayRef< T >::data(), DEBUG_WITH_TYPE, dump(), llvm::errs(), llvm::MCObjectWriter::executePostLayoutBinding(), getBackend(), getContext(), llvm::MCSection::getFragmentList(), llvm::MCAsmLayout::getSectionOrder(), getWriter(), i, llvm_unreachable, llvm::MCSection::setLayoutOrder(), llvm::MCSection::setOrdinal(), and llvm::ArrayRef< T >::size().
Referenced by Finish().
Definition at line 102 of file MCAssembler.cpp.
References llvm::MCSection::isRegistered(), and llvm::MCSection::setIsRegistered().
Referenced by llvm::MCObjectStreamer::changeSectionImpl(), llvm::MCWinCOFFStreamer::EmitCOFFSafeSEH(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::MCWinCOFFStreamer::EmitLocalCommonSymbol(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), llvm::MipsRegInfoRecord::EmitMipsOptionRecord(), and llvm::MipsTargetELFStreamer::finish().
Definition at line 385 of file MCAssembler.cpp.
References llvm::MCSymbol::isRegistered(), and llvm::MCSymbol::setIsRegistered().
Referenced by llvm::MachObjectWriter::bindIndirectSymbols(), llvm::MCELFStreamer::ChangeSection(), llvm::MipsELFStreamer::createPendingLabelRelocs(), llvm::MCObjectStreamer::EmitAssignment(), llvm::MCWinCOFFStreamer::EmitCOFFSafeSEH(), llvm::MCWinCOFFStreamer::EmitCOFFSymbolStorageClass(), llvm::MCWinCOFFStreamer::EmitCOFFSymbolType(), llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MCWinCOFFStreamer::EmitCommonSymbol(), llvm::MipsTargetELFStreamer::emitDirectiveCpLoad(), llvm::MCObjectStreamer::EmitLabel(), llvm::MipsTargetELFStreamer::emitLabel(), llvm::MCWinCOFFStreamer::EmitLocalCommonSymbol(), llvm::MCELFStreamer::EmitLocalCommonSymbol(), llvm::MCWinCOFFStreamer::EmitSymbolAttribute(), llvm::MCELFStreamer::EmitSymbolAttribute(), llvm::MCELFStreamer::EmitWeakReference(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::HexagonMCELFStreamer::HexagonMCEmitLocalCommonSymbol(), and llvm::MCObjectStreamer::visitUsedSymbol().
| void MCAssembler::reset | ( | ) |
Reuse an assembler instance.
Definition at line 79 of file MCAssembler.cpp.
References getBackend(), getEmitter(), getLOHContainer(), getWriter(), llvm::MCAssembler::VersionMinInfoType::Major, llvm::MCCodeEmitter::reset(), llvm::MCAsmBackend::reset(), llvm::MCObjectWriter::reset(), and llvm::MCLOHContainer::reset().
Referenced by llvm::MCObjectStreamer::reset().
|
inline |
Definition at line 295 of file MCAssembler.h.
References assert().
Referenced by llvm::MCELFStreamer::EmitBundleAlignMode().
|
inline |
Definition at line 267 of file MCAssembler.h.
References P.
|
inline |
Definition at line 231 of file MCAssembler.h.
References fuzzer::Flags.
Referenced by llvm::AVRELFStreamer::AVRELFStreamer(), llvm::MipsTargetELFStreamer::emitDirectiveAbiCalls(), llvm::MipsTargetELFStreamer::emitDirectiveNaN2008(), llvm::MipsTargetELFStreamer::emitDirectiveNaNLegacy(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic0(), llvm::MipsTargetELFStreamer::emitDirectiveOptionPic2(), llvm::MipsTargetELFStreamer::emitDirectiveSetMips16(), llvm::MipsTargetELFStreamer::emitDirectiveSetNoReorder(), llvm::MipsTargetELFStreamer::finish(), llvm::MipsTargetELFStreamer::MipsTargetELFStreamer(), and llvm::MipsTargetELFStreamer::setUsesMicroMips().
|
inline |
Definition at line 284 of file MCAssembler.h.
Flag a function symbol as the target of a .thumb_func directive.
Definition at line 227 of file MCAssembler.h.
|
inline |
Definition at line 289 of file MCAssembler.h.
Referenced by llvm::createELFStreamer().
|
inline |
Definition at line 279 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitAssemblerFlag().
|
inline |
Definition at line 235 of file MCAssembler.h.
References llvm::MCAssembler::VersionMinInfoType::Kind, Kind, llvm::MCAssembler::VersionMinInfoType::Major, llvm::MCAssembler::VersionMinInfoType::Minor, and llvm::MCAssembler::VersionMinInfoType::Update.
|
inline |
Definition at line 310 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::writeObject().
|
inline |
Definition at line 315 of file MCAssembler.h.
|
inline |
Definition at line 316 of file MCAssembler.h.
|
inline |
Definition at line 318 of file MCAssembler.h.
|
inline |
Definition at line 319 of file MCAssembler.h.
|
inline |
Definition at line 326 of file MCAssembler.h.
|
inline |
Definition at line 321 of file MCAssembler.h.
References llvm::make_range(), symbol_begin(), and symbol_end().
Referenced by llvm::MachObjectWriter::computeSymbolTable().
|
inline |
Definition at line 322 of file MCAssembler.h.
References llvm::make_range(), symbol_begin(), and symbol_end().
| void MCAssembler::writeFragmentPadding | ( | const MCFragment & | F, |
| uint64_t | FSize, | ||
| MCObjectWriter * | OW | ||
| ) | const |
Write the necessary bundle padding to the given object writer.
Expects a fragment F containing instructions and its size FSize.
Definition at line 395 of file MCAssembler.cpp.
References llvm::MCFragment::alignToBundleEnd(), assert(), getBackend(), getBundleAlignSize(), llvm::MCFragment::getBundlePadding(), llvm::MCFragment::hasInstructions(), isBundlingEnabled(), and llvm::report_fatal_error().
Referenced by writeFragment().
| void MCAssembler::writeSectionData | ( | const MCSection * | Section, |
| const MCAsmLayout & | Layout | ||
| ) | const |
Emit the section contents using the given object writer.
Definition at line 570 of file MCAssembler.cpp.
References assert(), F, llvm::MCEncodedFragmentWithFixups< ContentsSize, FixupsSize >::fixup_begin(), llvm::MCEncodedFragmentWithFixups< ContentsSize, FixupsSize >::fixup_end(), llvm::MCFragment::FT_Align, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Fill, llvm::MCEncodedFragmentWithContents< ContentsSize >::getContents(), llvm::MCAsmLayout::getSectionAddressSize(), llvm::MCAsmLayout::getSectionFileSize(), llvm::MCObjectWriter::getStream(), getWriter(), i, llvm::MCSection::isVirtualSection(), llvm_unreachable, llvm::report_fatal_error(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::raw_ostream::tell(), and writeFragment().
|
friend |
Definition at line 58 of file MCAssembler.h.
1.8.6