LLVM
8.0.1
|
Interface implemented by fragments that contain encoded instructions and/or data. More...
#include "llvm/MC/MCFragment.h"
Public Member Functions | |
bool | alignToBundleEnd () const |
Should this fragment be placed at the end of an aligned bundle? More... | |
void | setAlignToBundleEnd (bool V) |
uint8_t | getBundlePadding () const |
Get the padding size that must be inserted before this fragment. More... | |
void | setBundlePadding (uint8_t N) |
Set the padding size for this fragment. More... | |
const MCSubtargetInfo * | getSubtargetInfo () const |
Retrieve the MCSubTargetInfo in effect when the instruction was encoded. More... | |
void | setHasInstructions (const MCSubtargetInfo &STI) |
Record that the fragment contains instructions with the MCSubtargetInfo in effect when the instruction was encoded. More... | |
Public Member Functions inherited from llvm::MCFragment | |
MCFragment ()=delete | |
MCFragment (const MCFragment &)=delete | |
MCFragment & | operator= (const MCFragment &)=delete |
void | destroy () |
Destroys the current fragment. More... | |
FragmentType | getKind () const |
MCSection * | getParent () const |
void | setParent (MCSection *Value) |
const MCSymbol * | getAtom () const |
void | setAtom (const MCSymbol *Value) |
unsigned | getLayoutOrder () const |
void | setLayoutOrder (unsigned Value) |
bool | hasInstructions () const |
Does this fragment have instructions emitted into it? By default this is false, but specific fragment types may set it to true. More... | |
bool | isDummy () const |
Return true if given frgment has FT_Dummy type. More... | |
void | dump () const |
Public Member Functions inherited from llvm::ilist_node_with_parent< MCFragment, MCSection > | |
MCFragment * | getPrevNode () |
const MCFragment * | getPrevNode () const |
Get the previous node, or nullptr for the list head. More... | |
MCFragment * | getNextNode () |
Get the next node, or nullptr for the list tail. More... | |
const MCFragment * | getNextNode () const |
Get the next node, or nullptr for the list tail. More... | |
Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< MCFragment, Options... >::type > | |
self_iterator | getIterator () |
const_self_iterator | getIterator () const |
reverse_self_iterator | getReverseIterator () |
const_reverse_self_iterator | getReverseIterator () const |
bool | isSentinel () const |
Check whether this is the sentinel node. More... | |
Static Public Member Functions | |
static bool | classof (const MCFragment *F) |
Protected Member Functions | |
MCEncodedFragment (MCFragment::FragmentType FType, bool HasInstructions, MCSection *Sec) | |
Protected Member Functions inherited from llvm::MCFragment | |
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 | |
const MCSubtargetInfo * | STI = nullptr |
STI - The MCSubtargetInfo in effect when the instruction was encoded. More... | |
Protected Attributes inherited from llvm::MCFragment | |
bool | HasInstructions |
Additional Inherited Members | |
Public Types inherited from llvm::MCFragment | |
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 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 > |
Interface implemented by fragments that contain encoded instructions and/or data.
Definition at line 128 of file MCFragment.h.
|
inlineprotected |
Definition at line 135 of file MCFragment.h.
|
inline |
Should this fragment be placed at the end of an aligned bundle?
Definition at line 158 of file MCFragment.h.
Referenced by llvm::computeBundlePadding(), and llvm::MCAssembler::writeFragmentPadding().
|
inlinestatic |
Definition at line 144 of file MCFragment.h.
References llvm::MCFragment::FT_CompactEncodedInst, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Dwarf, llvm::MCFragment::FT_Relaxable, and llvm::MCFragment::getKind().
|
inline |
Get the padding size that must be inserted before this fragment.
Used for bundling. By default, no padding is inserted. Note that padding size is restricted to 8 bits. This is an optimization to reduce the amount of space used for each fragment. In practice, larger padding should never be required.
Definition at line 166 of file MCFragment.h.
Referenced by llvm::MCAssembler::writeFragmentPadding().
|
inline |
Retrieve the MCSubTargetInfo in effect when the instruction was encoded.
Guaranteed to be non-null if hasInstructions() == true
Definition at line 174 of file MCFragment.h.
Referenced by CanReuseDataFragment(), CheckBundleSubtargets(), llvm::MCAssembler::Finish(), llvm::MCELFStreamer::MCELFStreamer(), and llvm::MCWasmStreamer::~MCWasmStreamer().
|
inline |
Definition at line 159 of file MCFragment.h.
Referenced by CheckBundleSubtargets(), and llvm::MCELFStreamer::EmitBundleUnlock().
|
inline |
Set the padding size for this fragment.
By default it's a no-op, and only some fragments have a meaningful implementation.
Definition at line 170 of file MCFragment.h.
References N.
Referenced by llvm::MCAsmLayout::layoutFragment(), and llvm::MCELFStreamer::MCELFStreamer().
|
inline |
Record that the fragment contains instructions with the MCSubtargetInfo in effect when the instruction was encoded.
Definition at line 178 of file MCFragment.h.
References llvm::MCFragment::HasInstructions.
Referenced by CheckBundleSubtargets(), llvm::MCWasmStreamer::EmitIdent(), llvm::MCWinCOFFStreamer::EmitInstToData(), llvm::MCELFStreamer::MCELFStreamer(), and llvm::MCWasmStreamer::~MCWasmStreamer().
|
protected |
STI - The MCSubtargetInfo in effect when the instruction was encoded.
must be non-null for instructions.
Definition at line 141 of file MCFragment.h.