LLVM 18.0.0git
|
#include "llvm/MC/MCFragment.h"
Public Types | |
enum | FragmentType : uint8_t { FT_Align , FT_Data , FT_CompactEncodedInst , FT_Fill , FT_Nops , FT_Relaxable , FT_Org , FT_Dwarf , FT_DwarfFrame , FT_LEB , FT_BoundaryAlign , FT_SymbolId , FT_CVInlineLines , FT_CVDefRange , FT_PseudoProbe , FT_Dummy } |
Protected Member Functions | |
MCFragment (FragmentType Kind, bool HasInstructions, MCSection *Parent=nullptr) | |
![]() | |
ilist_node_with_parent ()=default | |
![]() | |
ilist_node_impl ()=default | |
Protected Attributes | |
bool | HasInstructions |
bool | LinkerRelaxable = false |
Friends | |
class | MCAsmLayout |
Additional Inherited Members | |
![]() | |
using | self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, ilist_detail::compute_node_options< T, Options... >::type, false, false >::type |
using | const_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, ilist_detail::compute_node_options< T, Options... >::type, false, true >::type |
using | reverse_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, ilist_detail::compute_node_options< T, Options... >::type, true, false >::type |
using | const_reverse_self_iterator = typename ilist_select_iterator_type< OptionsT::has_iterator_bits, ilist_detail::compute_node_options< T, Options... >::type, true, true >::type |
Definition at line 30 of file MCFragment.h.
enum llvm::MCFragment::FragmentType : uint8_t |
Enumerator | |
---|---|
FT_Align | |
FT_Data | |
FT_CompactEncodedInst | |
FT_Fill | |
FT_Nops | |
FT_Relaxable | |
FT_Org | |
FT_Dwarf | |
FT_DwarfFrame | |
FT_LEB | |
FT_BoundaryAlign | |
FT_SymbolId | |
FT_CVInlineLines | |
FT_CVDefRange | |
FT_PseudoProbe | |
FT_Dummy |
Definition at line 34 of file MCFragment.h.
|
protected |
Definition at line 258 of file MCFragment.cpp.
References llvm::MCSection::getFragmentList(), and llvm::iplist_impl< IntrusiveListT, TraitsT >::push_back().
|
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 266 of file MCFragment.cpp.
References FT_Align, FT_BoundaryAlign, FT_CompactEncodedInst, FT_CVDefRange, FT_CVInlineLines, FT_Data, FT_Dummy, FT_Dwarf, FT_DwarfFrame, FT_Fill, FT_LEB, FT_Nops, FT_Org, FT_PseudoProbe, FT_Relaxable, and FT_SymbolId.
LLVM_DUMP_METHOD void MCFragment::dump | ( | ) | const |
Definition at line 339 of file MCFragment.cpp.
References DF, llvm::errs(), F, FT_Align, FT_BoundaryAlign, FT_CompactEncodedInst, FT_CVDefRange, FT_CVInlineLines, FT_Data, FT_Dummy, FT_Dwarf, FT_DwarfFrame, FT_Fill, FT_LEB, FT_Nops, FT_Org, FT_PseudoProbe, FT_Relaxable, FT_SymbolId, getKind(), hasInstructions(), OS, and llvm::SmallVectorBase< Size_T >::size().
Definition at line 99 of file MCFragment.h.
Referenced by llvm::MCAssembler::getAtom(), and llvm::MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl().
|
inline |
Definition at line 94 of file MCFragment.h.
Referenced by dump(), and getOffsetAndDataFragment().
|
inline |
Definition at line 102 of file MCFragment.h.
Referenced by llvm::MCAsmLayout::canGetFragmentOffset().
|
inline |
Definition at line 96 of file MCFragment.h.
Referenced by AttemptToFoldSymbolOffsetDifference(), llvm::MCAssembler::computeFragmentSize(), llvm::MCAssembler::getAtom(), llvm::MachObjectWriter::getFragmentAddress(), llvm::MCSymbol::getSection(), llvm::MachObjectWriter::getSymbolAddress(), llvm::MCObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(), llvm::MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(), and llvm::MCBoundaryAlignFragment::setLastFragment().
|
inline |
Definition at line 112 of file MCFragment.h.
Referenced by AttemptToFoldSymbolOffsetDifference().
|
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 107 of file MCFragment.h.
References HasInstructions.
Referenced by dump(), llvm::MCAssembler::layout(), and llvm::MCAssembler::writeFragmentPadding().
|
delete |
Definition at line 100 of file MCFragment.h.
|
inline |
Definition at line 103 of file MCFragment.h.
|
inline |
Definition at line 97 of file MCFragment.h.
|
inline |
Definition at line 111 of file MCFragment.h.
|
friend |
Definition at line 31 of file MCFragment.h.
|
protected |
Definition at line 77 of file MCFragment.h.
Referenced by hasInstructions(), and llvm::MCEncodedFragment::setHasInstructions().
|
protected |
Definition at line 78 of file MCFragment.h.
Referenced by llvm::MCDataFragment::isLinkerRelaxable(), and llvm::MCDataFragment::setLinkerRelaxable().