LLVM 20.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. | |
Public Member Functions inherited from llvm::MCFragment | |
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) | |
Protected Member Functions inherited from llvm::MCFragment | |
MCFragment (FragmentType Kind, bool HasInstructions) | |
Protected Attributes | |
const MCSubtargetInfo * | STI = nullptr |
The MCSubtargetInfo in effect when the instruction was encoded. | |
Protected Attributes inherited from llvm::MCFragment | |
bool | HasInstructions: 1 |
Used by subclasses for better packing. | |
bool | AlignToBundleEnd: 1 |
bool | LinkerRelaxable: 1 |
MCDataFragment. | |
bool | AllowAutoPadding: 1 |
MCRelaxableFragment: x86-specific. | |
Additional Inherited Members | |
Public Types inherited from llvm::MCFragment | |
enum | FragmentType : uint8_t { FT_Align , FT_Data , 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 124 of file MCFragment.h.
|
inlineprotected |
Definition at line 128 of file MCFragment.h.
|
inline |
Should this fragment be placed at the end of an aligned bundle?
Definition at line 151 of file MCFragment.h.
References llvm::MCFragment::AlignToBundleEnd.
Referenced by llvm::MCAssembler::writeFragmentPadding().
|
inlinestatic |
Definition at line 136 of file MCFragment.h.
References F, 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 159 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 167 of file MCFragment.h.
References STI.
Referenced by llvm::MCAssembler::layout(), and llvm::MCAssembler::writeFragmentPadding().
|
inline |
Definition at line 152 of file MCFragment.h.
References llvm::MCFragment::AlignToBundleEnd.
|
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 163 of file MCFragment.h.
References N.
Referenced by llvm::MCAssembler::layoutBundle().
|
inline |
Record that the fragment contains instructions with the MCSubtargetInfo in effect when the instruction was encoded.
Definition at line 171 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 133 of file MCFragment.h.
Referenced by getSubtargetInfo(), llvm::MCRelaxableFragment::MCRelaxableFragment(), and setHasInstructions().