LLVM 19.0.0git
|
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? | |
void | setAlignToBundleEnd (bool V) |
uint8_t | getBundlePadding () const |
Get the padding size that must be inserted before this fragment. | |
void | setBundlePadding (uint8_t N) |
Set the padding size for this fragment. | |
const MCSubtargetInfo * | getSubtargetInfo () const |
Retrieve the MCSubTargetInfo in effect when the instruction was encoded. | |
void | setHasInstructions (const MCSubtargetInfo &STI) |
Record that the fragment contains instructions with the MCSubtargetInfo in effect when the instruction was encoded. | |
![]() | |
MCFragment ()=delete | |
MCFragment (const MCFragment &)=delete | |
MCFragment & | operator= (const MCFragment &)=delete |
void | destroy () |
Destroys the current fragment. | |
MCFragment * | getNext () const |
FragmentType | getKind () const |
MCSection * | getParent () const |
void | setParent (MCSection *Value) |
const MCSymbol * | getAtom () const |
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. | |
void | dump () const |
Static Public Member Functions | |
static bool | classof (const MCFragment *F) |
Protected Member Functions | |
MCEncodedFragment (MCFragment::FragmentType FType, bool HasInstructions) | |
![]() | |
MCFragment (FragmentType Kind, bool HasInstructions) | |
Protected Attributes | |
const MCSubtargetInfo * | STI = nullptr |
The MCSubtargetInfo in effect when the instruction was encoded. | |
![]() | |
bool | HasInstructions: 1 |
bool | LinkerRelaxable: 1 |
Additional Inherited Members | |
![]() | |
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 } |
Interface implemented by fragments that contain encoded instructions and/or data.
Definition at line 119 of file MCFragment.h.
|
inlineprotected |
Definition at line 126 of file MCFragment.h.
|
inline |
Should this fragment be placed at the end of an aligned bundle?
Definition at line 150 of file MCFragment.h.
Referenced by llvm::MCAssembler::writeFragmentPadding().
|
inlinestatic |
Definition at line 134 of file MCFragment.h.
References F, llvm::MCFragment::FT_CompactEncodedInst, llvm::MCFragment::FT_Data, llvm::MCFragment::FT_Dwarf, llvm::MCFragment::FT_DwarfFrame, llvm::MCFragment::FT_PseudoProbe, and llvm::MCFragment::FT_Relaxable.
|
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 158 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 166 of file MCFragment.h.
References STI.
Referenced by llvm::MCAssembler::layout(), and llvm::MCAssembler::writeFragmentPadding().
|
inline |
Definition at line 151 of file MCFragment.h.
|
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 162 of file MCFragment.h.
References N.
Referenced by llvm::MCAsmLayout::layoutBundle().
|
inline |
Record that the fragment contains instructions with the MCSubtargetInfo in effect when the instruction was encoded.
Definition at line 170 of file MCFragment.h.
References llvm::MCFragment::HasInstructions, and STI.
|
protected |
The MCSubtargetInfo in effect when the instruction was encoded.
It must be non-null for instructions.
Definition at line 131 of file MCFragment.h.
Referenced by getSubtargetInfo(), llvm::MCRelaxableFragment::MCRelaxableFragment(), and setHasInstructions().