LLVM API Documentation
#include <MCAssembler.h>
Public Types | |
typedef iplist< MCSectionData > | SectionDataListType |
typedef iplist< MCSymbolData > | SymbolDataListType |
typedef SectionDataListType::const_iterator | const_iterator |
typedef SectionDataListType::iterator | iterator |
typedef SymbolDataListType::const_iterator | const_symbol_iterator |
typedef SymbolDataListType::iterator | symbol_iterator |
typedef std::vector< std::string > | FileNameVectorType |
typedef FileNameVectorType::const_iterator | const_file_name_iterator |
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 807 of file MCAssembler.h.
typedef std::vector<DataRegionData>::const_iterator llvm::MCAssembler::const_data_region_iterator |
Definition at line 828 of file MCAssembler.h.
typedef FileNameVectorType::const_iterator llvm::MCAssembler::const_file_name_iterator |
Definition at line 821 of file MCAssembler.h.
typedef std::vector<IndirectSymbolData>::const_iterator llvm::MCAssembler::const_indirect_symbol_iterator |
Definition at line 824 of file MCAssembler.h.
Definition at line 814 of file MCAssembler.h.
Definition at line 817 of file MCAssembler.h.
typedef std::vector<DataRegionData>::iterator llvm::MCAssembler::data_region_iterator |
Definition at line 829 of file MCAssembler.h.
typedef std::vector<std::string> llvm::MCAssembler::FileNameVectorType |
Definition at line 820 of file MCAssembler.h.
typedef std::vector<IndirectSymbolData>::iterator llvm::MCAssembler::indirect_symbol_iterator |
Definition at line 825 of file MCAssembler.h.
Definition at line 815 of file MCAssembler.h.
Definition at line 811 of file MCAssembler.h.
Definition at line 818 of file MCAssembler.h.
Definition at line 812 of file MCAssembler.h.
MCAssembler::MCAssembler | ( | MCContext & | Context_, |
MCAsmBackend & | Backend_, | ||
MCCodeEmitter & | Emitter_, | ||
MCObjectWriter & | Writer_, | ||
raw_ostream & | OS | ||
) |
Construct a new assembler instance.
OS | The stream to output to. |
Definition at line 293 of file MCAssembler.cpp.
MCAssembler::~MCAssembler | ( | ) |
Definition at line 301 of file MCAssembler.cpp.
|
inline |
Definition at line 1170 of file MCAssembler.h.
References file_names_begin(), and file_names_end().
Referenced by llvm::MCELFStreamer::EmitFileDirective().
|
inline |
Definition at line 1039 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::ComputeSymbolTable(), dump(), Finish(), llvm::MCAsmLayout::MCAsmLayout(), and llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1040 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 425 of file MCAssembler.cpp.
References F(), llvm::MCFragment::FT_Align, llvm::MCFragment::FT_CompactEncodedInst, llvm::MCFragment::FT_Data, 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::MCAlignFragment::getAlignment(), getBackend(), llvm::MCAsmLayout::getFragmentOffset(), llvm::MCFragment::getKind(), llvm::MCAlignFragment::getMaxBytesToEmit(), llvm::MCAsmBackend::getMinimumNopSize(), llvm::MCOrgFragment::getOffset(), llvm::MCAlignFragment::hasEmitNops(), llvm_unreachable, llvm::OffsetToAlignment(), and llvm::report_fatal_error().
Referenced by llvm::MCAsmLayout::getSectionAddressSize(), llvm::MCAsmLayout::layoutFragment(), and writeFragment().
|
inline |
Definition at line 1108 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1111 of file MCAssembler.h.
|
inline |
Definition at line 1115 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1118 of file MCAssembler.h.
|
inline |
Definition at line 1122 of file MCAssembler.h.
void MCAssembler::dump | ( | ) |
Definition at line 1156 of file MCAssembler.cpp.
References begin(), end(), llvm::errs(), symbol_begin(), and symbol_end().
Referenced by Finish().
|
inline |
Definition at line 1042 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::ComputeSymbolTable(), dump(), Finish(), llvm::MCAsmLayout::MCAsmLayout(), and llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1043 of file MCAssembler.h.
|
inline |
Definition at line 1162 of file MCAssembler.h.
Referenced by addFileName().
|
inline |
Definition at line 1166 of file MCAssembler.h.
Referenced by addFileName().
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 753 of file MCAssembler.cpp.
References llvm::MCAsmBackend::applyFixup(), llvm::MCSectionData::begin(), begin(), llvm::SmallVectorTemplateCommon< T, typename >::data(), DEBUG_WITH_TYPE, dump(), llvm::dyn_cast(), llvm::MCSectionData::end(), end(), llvm::errs(), llvm::MCObjectWriter::ExecutePostLayoutBinding(), llvm::MCEncodedFragmentWithFixups::fixup_begin(), llvm::MCEncodedFragmentWithFixups::fixup_end(), getBackend(), llvm::MCEncodedFragment::getContents(), getWriter(), llvm::MCSectionData::setLayoutOrder(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::raw_ostream::tell(), and llvm::MCObjectWriter::WriteObject().
Referenced by llvm::MCObjectStreamer::FinishImpl().
const MCSymbolData * MCAssembler::getAtom | ( | const MCSymbolData * | Symbol | ) | const |
Find the symbol which defines the atom containing the given symbol, or null if there is no such symbol.
Definition at line 336 of file MCAssembler.cpp.
References llvm::MCFragment::getAtom(), getBackend(), llvm::MCSymbolData::getFragment(), llvm::MCFragment::getParent(), llvm::MCSectionData::getSection(), llvm::MCSymbolData::getSymbol(), llvm::MCAsmBackend::isSectionAtomizable(), and isSymbolLinkerVisible().
|
inline |
Definition at line 994 of file MCAssembler.h.
Referenced by computeFragmentSize(), llvm::MCObjectStreamer::EmitInstruction(), Finish(), getAtom(), llvm::MachObjectWriter::isFixupKindPCRel(), isSymbolLinkerVisible(), llvm::MachObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(), reset(), writeFragment(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 1023 of file MCAssembler.h.
Referenced by llvm::MCAsmLayout::layoutFragment(), and writeFragment().
|
inline |
Definition at line 992 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MCELFStreamer::EmitIdent(), and llvm::PPCMCExpr::EvaluateAsRelocatableImpl().
|
inline |
Definition at line 1104 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::WriteObject().
|
inline |
ELF e_header flags.
Definition at line 971 of file MCAssembler.h.
|
inline |
Definition at line 996 of file MCAssembler.h.
Referenced by llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::MCObjectStreamer::EmitInstToFragment(), reset(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 1069 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitSymbolAttribute().
|
inline |
Definition at line 1093 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1016 of file MCAssembler.h.
|
inline |
Definition at line 1134 of file MCAssembler.h.
References llvm::ARMBuildAttrs::Section.
Referenced by llvm::MCObjectStreamer::ChangeSection(), and llvm::MCELFStreamer::Flush().
|
inline |
Definition at line 1151 of file MCAssembler.h.
References llvm::ARMBuildAttrs::Symbol.
Referenced by llvm::MCObjectStreamer::AddValueSymbols(), AddValueSymbols_(), AddValueSymbolsImpl(), llvm::MachObjectWriter::BindIndirectSymbols(), llvm::MCELFStreamer::ChangeSection(), llvm::MCObjectStreamer::EmitAssignment(), llvm::MCELFStreamer::EmitCommonSymbol(), llvm::MCELFStreamer::EmitELFSize(), llvm::MCObjectStreamer::EmitLabel(), llvm::MCELFStreamer::EmitLocalCommonSymbol(), llvm::MCELFStreamer::EmitSymbolAttribute(), llvm::MCELFStreamer::EmitWeakReference(), fixELFSymbolsInTLSFixupsImpl(), and llvm::MCELFStreamer::getOrCreateSymbolData().
|
inline |
Definition at line 1013 of file MCAssembler.h.
References RelaxAll().
Referenced by llvm::MCObjectStreamer::EmitInstruction().
|
inline |
Definition at line 1128 of file MCAssembler.h.
|
inline |
Definition at line 1036 of file MCAssembler.h.
Referenced by llvm::MCSectionData::MCSectionData().
|
inline |
Definition at line 1037 of file MCAssembler.h.
|
inline |
Definition at line 1006 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(), and llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1145 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitLabel(), llvm::MachObjectWriter::getSymbolAddress(), llvm::MCAsmLayout::getSymbolOffset(), llvm::MCObjectWriter::IsSymbolRefDifferenceFullyResolved(), llvm::MachObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(), NeedsMatchingLo(), and llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1051 of file MCAssembler.h.
Referenced by llvm::MCSymbolData::MCSymbolData().
|
inline |
Definition at line 1052 of file MCAssembler.h.
|
inline |
Definition at line 998 of file MCAssembler.h.
Referenced by Finish(), reset(), writeFragment(), writeSectionData(), and llvm::MCObjectStreamer::~MCObjectStreamer().
|
inline |
Definition at line 1073 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::BindIndirectSymbols(), and llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1076 of file MCAssembler.h.
|
inline |
Definition at line 1080 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::BindIndirectSymbols(), and llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1083 of file MCAssembler.h.
|
inline |
Definition at line 1087 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1019 of file MCAssembler.h.
Referenced by llvm::MCObjectStreamer::EmitInstruction(), llvm::MCObjectStreamer::getOrCreateDataFragment(), llvm::MCAsmLayout::layoutFragment(), and writeFragment().
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 323 of file MCAssembler.cpp.
References llvm::MCAsmBackend::doesSectionRequireSymbols(), getBackend(), llvm::MCSymbol::getSection(), llvm::MCSymbol::isInSection(), and llvm::MCSymbol::isTemporary().
Referenced by llvm::MachObjectWriter::ComputeSymbolTable(), and getAtom().
Check whether a given symbol has been flagged with .thumb_func.
Definition at line 963 of file MCAssembler.h.
References llvm::SmallPtrSet< PtrType, SmallSize >::count().
void MCAssembler::reset | ( | ) |
Reuse an assembler instance
Definition at line 304 of file MCAssembler.cpp.
References getBackend(), getEmitter(), getWriter(), llvm::MCCodeEmitter::reset(), llvm::MCAsmBackend::reset(), and llvm::MCObjectWriter::reset().
Referenced by llvm::MCObjectStreamer::reset().
|
inline |
Definition at line 1027 of file MCAssembler.h.
|
inline |
Definition at line 972 of file MCAssembler.h.
Referenced by llvm::MipsTargetELFStreamer::emitMipsHackELFFlags().
|
inline |
Flag a function symbol as the target of a .thumb_func directive.
Definition at line 968 of file MCAssembler.h.
|
inline |
Definition at line 1017 of file MCAssembler.h.
Referenced by llvm::createELFStreamer().
|
inline |
Definition at line 1014 of file MCAssembler.h.
References RelaxAll().
Referenced by llvm::createELFStreamer().
|
inline |
Definition at line 1009 of file MCAssembler.h.
Referenced by llvm::MCELFStreamer::EmitAssemblerFlag().
|
inline |
Definition at line 1045 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::WriteObject().
|
inline |
Definition at line 1054 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::ComputeSymbolTable(), dump(), and llvm::MachObjectWriter::markAbsoluteVariableSymbols().
|
inline |
Definition at line 1055 of file MCAssembler.h.
|
inline |
Definition at line 1057 of file MCAssembler.h.
Referenced by llvm::MachObjectWriter::ComputeSymbolTable(), dump(), and llvm::MachObjectWriter::markAbsoluteVariableSymbols().
|
inline |
Definition at line 1058 of file MCAssembler.h.
|
inline |
Definition at line 1060 of file MCAssembler.h.
void MCAssembler::writeSectionData | ( | const MCSectionData * | Section, |
const MCAsmLayout & | Layout | ||
) | const |
Emit the section contents using the given object writer.
Definition at line 685 of file MCAssembler.cpp.
References llvm::MCSectionData::begin(), llvm::MCSectionData::end(), llvm::MCDataFragment::fixup_begin(), llvm::MCDataFragment::fixup_end(), llvm::MCFragment::FT_Align, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Fill, llvm::MCDataFragment::getContents(), llvm::MCSectionData::getSection(), llvm::MCAsmLayout::getSectionAddressSize(), llvm::MCAsmLayout::getSectionFileSize(), llvm::MCObjectWriter::getStream(), getWriter(), llvm::MCSection::isVirtualSection(), llvm_unreachable, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::raw_ostream::tell(), and writeFragment().
Referenced by llvm::MachObjectWriter::WriteObject().
|
friend |
Definition at line 808 of file MCAssembler.h.