LLVM
8.0.1
|
#include "llvm/MC/MCFragment.h"
Public Types | |
enum | FragmentType : uint8_t { FT_Align, FT_Data, FT_CompactEncodedInst, FT_Fill, FT_Relaxable, FT_Org, FT_Dwarf, FT_DwarfFrame, FT_LEB, FT_Padding, FT_SymbolId, FT_CVInlineLines, FT_CVDefRange, FT_Dummy } |
Protected Member Functions | |
MCFragment (FragmentType Kind, bool HasInstructions, MCSection *Parent=nullptr) | |
~MCFragment () | |
Protected Member Functions inherited from llvm::ilist_node_with_parent< MCFragment, MCSection > | |
ilist_node_with_parent ()=default | |
Protected Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< MCFragment, Options... >::type > | |
ilist_node_impl ()=default | |
Protected Attributes | |
bool | HasInstructions |
Friends | |
class | MCAsmLayout |
Additional Inherited Members | |
Protected Types inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< MCFragment, Options... >::type > | |
using | self_iterator = ilist_iterator< ilist_detail::compute_node_options< MCFragment, Options... >::type, false, false > |
using | const_self_iterator = ilist_iterator< ilist_detail::compute_node_options< MCFragment, Options... >::type, false, true > |
using | reverse_self_iterator = ilist_iterator< ilist_detail::compute_node_options< MCFragment, Options... >::type, true, false > |
using | const_reverse_self_iterator = ilist_iterator< ilist_detail::compute_node_options< MCFragment, Options... >::type, true, true > |
Definition at line 31 of file MCFragment.h.
enum llvm::MCFragment::FragmentType : uint8_t |
Enumerator | |
---|---|
FT_Align | |
FT_Data | |
FT_CompactEncodedInst | |
FT_Fill | |
FT_Relaxable | |
FT_Org | |
FT_Dwarf | |
FT_DwarfFrame | |
FT_LEB | |
FT_Padding | |
FT_SymbolId | |
FT_CVInlineLines | |
FT_CVDefRange | |
FT_Dummy |
Definition at line 35 of file MCFragment.h.
|
protected |
Definition at line 238 of file MCFragment.cpp.
References llvm::MCSection::getFragmentList(), isDummy(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back().
|
protecteddefault |
Referenced by llvm::computeBundlePadding().
|
delete |
|
delete |
void MCFragment::destroy | ( | ) |
Destroys the current fragment.
This must be used instead of delete as MCFragment is non-virtual. This method will dispatch to the appropriate subclass.
Definition at line 246 of file MCFragment.cpp.
References FT_Align, FT_CompactEncodedInst, FT_CVDefRange, FT_CVInlineLines, FT_Data, FT_Dummy, FT_Dwarf, FT_DwarfFrame, FT_Fill, FT_LEB, FT_Org, FT_Padding, FT_Relaxable, and FT_SymbolId.
Referenced by llvm::computeBundlePadding().
LLVM_DUMP_METHOD void MCFragment::dump | ( | ) | const |
Definition at line 313 of file MCFragment.cpp.
References llvm::MCInst::dump_pretty(), llvm::errs(), llvm::MCEncodedFragmentWithFixups< ContentsSize, FixupsSize >::fixup_begin(), llvm::MCEncodedFragmentWithFixups< ContentsSize, FixupsSize >::fixup_end(), FT_Align, FT_CompactEncodedInst, FT_CVDefRange, FT_CVInlineLines, FT_Data, FT_Dummy, FT_Dwarf, FT_DwarfFrame, FT_Fill, FT_LEB, FT_Org, FT_Padding, FT_Relaxable, FT_SymbolId, llvm::MCDwarfLineAddrFragment::getAddrDelta(), llvm::MCDwarfCallFrameFragment::getAddrDelta(), llvm::MCAlignFragment::getAlignment(), llvm::MCEncodedFragmentWithContents< ContentsSize >::getContents(), llvm::MCRelaxableFragment::getInst(), llvm::MCPaddingFragment::getInst(), llvm::MCPaddingFragment::getInstSize(), getKind(), llvm::MCDwarfLineAddrFragment::getLineDelta(), llvm::MCAlignFragment::getMaxBytesToEmit(), llvm::MCFillFragment::getNumValues(), llvm::MCOrgFragment::getOffset(), llvm::MCPaddingFragment::getPaddingPoliciesMask(), llvm::MCPaddingFragment::getSize(), llvm::MCSymbolIdFragment::getSymbol(), llvm::MCAlignFragment::getValue(), llvm::MCFillFragment::getValue(), llvm::MCOrgFragment::getValue(), llvm::MCLEBFragment::getValue(), llvm::MCAlignFragment::getValueSize(), llvm::MCFillFragment::getValueSize(), llvm::MCAlignFragment::hasEmitNops(), hasInstructions(), llvm::hexdigit(), llvm::MCPaddingFragment::isInsertionPoint(), llvm::MCLEBFragment::isSigned(), and llvm::SmallVectorBase::size().
Referenced by isDummy().
Definition at line 102 of file MCFragment.h.
Referenced by llvm::MCAssembler::getAtom(), and llvm::MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl().
|
inline |
Definition at line 97 of file MCFragment.h.
References Kind.
Referenced by llvm::MCDummyFragment::classof(), llvm::MCEncodedFragment::classof(), llvm::MCEncodedFragmentWithFixups< 8, 1 >::classof(), llvm::MCDataFragment::classof(), llvm::MCCompactEncodedInstFragment::classof(), llvm::MCRelaxableFragment::classof(), llvm::MCAlignFragment::classof(), llvm::MCPaddingFragment::classof(), llvm::MCFillFragment::classof(), llvm::MCOrgFragment::classof(), llvm::MCLEBFragment::classof(), llvm::MCDwarfLineAddrFragment::classof(), llvm::MCDwarfCallFrameFragment::classof(), llvm::MCSymbolIdFragment::classof(), llvm::MCCVInlineLineTableFragment::classof(), llvm::MCCVDefRangeFragment::classof(), llvm::MCAssembler::computeFragmentSize(), dump(), llvm::MCCodePadder::handleBasicBlockStart(), llvm::MCCodePadder::handleInstructionBegin(), and isInSymtab().
|
inline |
Definition at line 105 of file MCFragment.h.
Referenced by llvm::MCAsmLayout::MCAsmLayout().
|
inline |
Definition at line 99 of file MCFragment.h.
Referenced by canUseLocalRelocation(), encodeBase64StringEntry(), getARMFixupKindMachOInfo(), llvm::MCAssembler::getAtom(), getFixupKindLog2Size(), getFixupOffset(), llvm::MachObjectWriter::getFragmentAddress(), llvm::MCCodePaddingPolicy::getNextFragmentOffset(), llvm::RISCVMCExpr::getPCRelHiFixup(), llvm::MachObjectWriter::getSymbolAddress(), getSymbolValue(), llvm::MCAsmLayout::invalidateFragmentsFrom(), llvm::MCObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(), llvm::MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(), isWeak(), llvm::MCAsmLayout::layoutFragment(), llvm::MCAsmLayout::MCAsmLayout(), and llvm::MCCodePadder::relaxFragment().
|
inline |
Does this fragment have instructions emitted into it? By default this is false, but specific fragment types may set it to true.
Definition at line 110 of file MCFragment.h.
References HasInstructions.
Referenced by CanReuseDataFragment(), dump(), isInSymtab(), llvm::MCAsmLayout::layoutFragment(), and llvm::MCAssembler::writeFragmentPadding().
|
inline |
Return true if given frgment has FT_Dummy type.
Definition at line 113 of file MCFragment.h.
References dump(), and FT_Dummy.
Referenced by MCFragment().
|
delete |
Definition at line 103 of file MCFragment.h.
|
inline |
Definition at line 106 of file MCFragment.h.
|
inline |
Definition at line 100 of file MCFragment.h.
Referenced by llvm::MCObjectStreamer::flushPendingLabels(), llvm::MCSection::getSubsectionInsertionPoint(), and llvm::MCObjectStreamer::insert().
|
friend |
Definition at line 32 of file MCFragment.h.
|
protected |
Definition at line 56 of file MCFragment.h.
Referenced by hasInstructions(), and llvm::MCEncodedFragment::setHasInstructions().