LLVM  8.0.1
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
llvm::MCFragment Class Reference

#include "llvm/MC/MCFragment.h"

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

Public Types

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
}
 

Public Member Functions

 MCFragment ()=delete
 
 MCFragment (const MCFragment &)=delete
 
MCFragmentoperator= (const MCFragment &)=delete
 
void destroy ()
 Destroys the current fragment. More...
 
FragmentType getKind () const
 
MCSectiongetParent () const
 
void setParent (MCSection *Value)
 
const MCSymbolgetAtom () 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 >
MCFragmentgetPrevNode ()
 
const MCFragmentgetPrevNode () const
 Get the previous node, or nullptr for the list head. More...
 
MCFragmentgetNextNode ()
 Get the next node, or nullptr for the list tail. More...
 
const MCFragmentgetNextNode () 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...
 

Protected Member Functions

 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

bool HasInstructions
 

Friends

class MCAsmLayout
 

Additional Inherited Members

- 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 >
 

Detailed Description

Definition at line 31 of file MCFragment.h.

Member Enumeration Documentation

◆ FragmentType

Enumerator
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 

Definition at line 35 of file MCFragment.h.

Constructor & Destructor Documentation

◆ MCFragment() [1/3]

MCFragment::MCFragment ( FragmentType  Kind,
bool  HasInstructions,
MCSection Parent = nullptr 
)
protected

◆ ~MCFragment()

MCFragment::~MCFragment ( )
protecteddefault

◆ MCFragment() [2/3]

llvm::MCFragment::MCFragment ( )
delete

◆ MCFragment() [3/3]

llvm::MCFragment::MCFragment ( const MCFragment )
delete

Member Function Documentation

◆ destroy()

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 246 of file MCFragment.cpp.

References FT_Align, FT_CompactEncodedInst, FT_CVDefRange, FT_CVInlineLines, FT_Data, FT_Dummy, FT_Dwarf, FT_DwarfFrame, FT_Fill, FT_LEB, FT_Org, FT_Padding, FT_Relaxable, and FT_SymbolId.

Referenced by llvm::computeBundlePadding().

◆ dump()

LLVM_DUMP_METHOD void MCFragment::dump ( ) const

◆ getAtom()

const MCSymbol* llvm::MCFragment::getAtom ( ) const
inline

◆ getKind()

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

◆ getLayoutOrder()

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

Definition at line 105 of file MCFragment.h.

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

◆ getParent()

MCSection* llvm::MCFragment::getParent ( ) const
inline

◆ hasInstructions()

bool llvm::MCFragment::hasInstructions ( ) const
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 110 of file MCFragment.h.

References HasInstructions.

Referenced by CanReuseDataFragment(), dump(), isInSymtab(), llvm::MCAsmLayout::layoutFragment(), and llvm::MCAssembler::writeFragmentPadding().

◆ isDummy()

bool llvm::MCFragment::isDummy ( ) const
inline

Return true if given frgment has FT_Dummy type.

Definition at line 113 of file MCFragment.h.

References dump(), and FT_Dummy.

Referenced by MCFragment().

◆ operator=()

MCFragment& llvm::MCFragment::operator= ( const MCFragment )
delete

◆ setAtom()

void llvm::MCFragment::setAtom ( const MCSymbol Value)
inline

Definition at line 103 of file MCFragment.h.

◆ setLayoutOrder()

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

Definition at line 106 of file MCFragment.h.

◆ setParent()

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

Friends And Related Function Documentation

◆ MCAsmLayout

friend class MCAsmLayout
friend

Definition at line 32 of file MCFragment.h.

Member Data Documentation

◆ HasInstructions

bool llvm::MCFragment::HasInstructions
protected

Definition at line 56 of file MCFragment.h.

Referenced by hasInstructions(), and llvm::MCEncodedFragment::setHasInstructions().


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