LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
llvm::MCFragment Class Reference

#include <MCAssembler.h>

Inheritance diagram for llvm::MCFragment:
Inheritance graph
[legend]
Collaboration diagram for llvm::MCFragment:
Collaboration graph
[legend]

Public Types

enum  FragmentType {
  FT_Align, FT_Data, FT_CompactEncodedInst, FT_Fill,
  FT_Relaxable, FT_Org, FT_Dwarf, FT_DwarfFrame,
  FT_LEB
}
 

Public Member Functions

 MCFragment ()
 
virtual ~MCFragment ()
 
FragmentType getKind () const
 
MCSectionDatagetParent () const
 
void setParent (MCSectionData *Value)
 
MCSymbolDatagetAtom () const
 
void setAtom (MCSymbolData *Value)
 
unsigned getLayoutOrder () const
 
void setLayoutOrder (unsigned Value)
 
virtual 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...
 
virtual bool alignToBundleEnd () const
 Should this fragment be placed at the end of an aligned bundle? More...
 
virtual void setAlignToBundleEnd (bool V)
 
virtual uint8_t getBundlePadding () const
 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. More...
 
virtual void setBundlePadding (uint8_t N)
 Set the padding size for this fragment. By default it's a no-op, and only some fragments have a meaningful implementation. More...
 
void dump ()
 
- Public Member Functions inherited from llvm::ilist_node< MCFragment >
MCFragmentgetPrevNode ()
 Get the previous node, or 0 for the list head. More...
 
const MCFragmentgetPrevNode () const
 Get the previous node, or 0 for the list head. More...
 
MCFragmentgetNextNode ()
 Get the next node, or 0 for the list tail. More...
 
const MCFragmentgetNextNode () const
 Get the next node, or 0 for the list tail. More...
 

Protected Member Functions

 MCFragment (FragmentType _Kind, MCSectionData *_Parent=0)
 
- Protected Member Functions inherited from llvm::ilist_node< MCFragment >
 ilist_node ()
 

Friends

class MCAsmLayout
 

Detailed Description

Definition at line 41 of file MCAssembler.h.

Member Enumeration Documentation

Enumerator
FT_Align 
FT_Data 
FT_CompactEncodedInst 
FT_Fill 
FT_Relaxable 
FT_Org 
FT_Dwarf 
FT_DwarfFrame 
FT_LEB 

Definition at line 48 of file MCAssembler.h.

Constructor & Destructor Documentation

MCFragment::MCFragment ( FragmentType  _Kind,
MCSectionData _Parent = 0 
)
protected
MCFragment::MCFragment ( )

Definition at line 208 of file MCAssembler.cpp.

MCFragment::~MCFragment ( )
virtual

Definition at line 211 of file MCAssembler.cpp.

Member Function Documentation

virtual bool llvm::MCFragment::alignToBundleEnd ( ) const
inlinevirtual

Should this fragment be placed at the end of an aligned bundle?

Reimplemented in llvm::MCCompactEncodedInstFragment, and llvm::MCDataFragment.

Definition at line 109 of file MCAssembler.h.

Referenced by writeFragment().

void MCFragment::dump ( )
MCSymbolData* llvm::MCFragment::getAtom ( ) const
inline
virtual uint8_t llvm::MCFragment::getBundlePadding ( ) const
inlinevirtual

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.

Reimplemented in llvm::MCEncodedFragment.

Definition at line 117 of file MCAssembler.h.

Referenced by dump(), and writeFragment().

FragmentType llvm::MCFragment::getKind ( ) const
inline
unsigned llvm::MCFragment::getLayoutOrder ( ) const
inline

Definition at line 101 of file MCAssembler.h.

MCSectionData* llvm::MCFragment::getParent ( ) const
inline
virtual bool llvm::MCFragment::hasInstructions ( ) const
inlinevirtual

Does this fragment have instructions emitted into it? By default this is false, but specific fragment types may set it to true.

Reimplemented in llvm::MCRelaxableFragment, llvm::MCCompactEncodedInstFragment, and llvm::MCDataFragment.

Definition at line 106 of file MCAssembler.h.

Referenced by dump(), llvm::MCAsmLayout::layoutFragment(), and writeFragment().

virtual void llvm::MCFragment::setAlignToBundleEnd ( bool  V)
inlinevirtual

Reimplemented in llvm::MCCompactEncodedInstFragment, and llvm::MCDataFragment.

Definition at line 110 of file MCAssembler.h.

void llvm::MCFragment::setAtom ( MCSymbolData Value)
inline

Definition at line 99 of file MCAssembler.h.

virtual void llvm::MCFragment::setBundlePadding ( uint8_t  N)
inlinevirtual

Set the padding size for this fragment. By default it's a no-op, and only some fragments have a meaningful implementation.

Reimplemented in llvm::MCEncodedFragment.

Definition at line 123 of file MCAssembler.h.

Referenced by llvm::MCAsmLayout::layoutFragment().

void llvm::MCFragment::setLayoutOrder ( unsigned  Value)
inline

Definition at line 102 of file MCAssembler.h.

void llvm::MCFragment::setParent ( MCSectionData Value)
inline

Friends And Related Function Documentation

friend class MCAsmLayout
friend

Definition at line 42 of file MCAssembler.h.


The documentation for this class was generated from the following files: