LLVM  3.7.0
Public Types | Public Member Functions | Protected Attributes | List of all members
llvm::HexagonShuffler Class Reference

#include <HexagonShuffler.h>

Inheritance diagram for llvm::HexagonShuffler:
[legend]
Collaboration diagram for llvm::HexagonShuffler:
[legend]

Public Types

enum  {
  SHUFFLE_SUCCESS = 0, SHUFFLE_ERROR_INVALID, SHUFFLE_ERROR_STORES, SHUFFLE_ERROR_LOADS,
  SHUFFLE_ERROR_BRANCHES, SHUFFLE_ERROR_NOSLOTS, SHUFFLE_ERROR_SLOTS, SHUFFLE_ERROR_UNKNOWN
}
 
typedef HexagonPacket::iterator iterator
 

Public Member Functions

 HexagonShuffler (MCInstrInfo const &MCII, MCSubtargetInfo const &STI)
 
void reset ()
 
bool check ()
 Check that the packet is legal and enforce relative insn order. More...
 
bool shuffle ()
 
unsigned size () const
 
iterator begin ()
 
iterator end ()
 
void append (MCInst const *ID, MCInst const *Extender, unsigned S, bool X=false)
 
void setError (unsigned Err)
 
unsigned getError () const
 

Protected Attributes

int64_t BundleFlags
 
MCInstrInfo constMCII
 
MCSubtargetInfo constSTI
 

Detailed Description

Definition at line 85 of file HexagonShuffler.h.

Member Typedef Documentation

Definition at line 101 of file HexagonShuffler.h.

Member Enumeration Documentation

anonymous enum
Enumerator
SHUFFLE_SUCCESS 

Successful operation.

SHUFFLE_ERROR_INVALID 

Invalid bundle.

SHUFFLE_ERROR_STORES 

No free slots for store insns.

SHUFFLE_ERROR_LOADS 

No free slots for load insns.

SHUFFLE_ERROR_BRANCHES 

No free slots for branch insns.

SHUFFLE_ERROR_NOSLOTS 

No free slots for other insns.

SHUFFLE_ERROR_SLOTS 

Over-subscribed slots.

SHUFFLE_ERROR_UNKNOWN 

Unknown error.

Definition at line 103 of file HexagonShuffler.h.

Constructor & Destructor Documentation

HexagonShuffler::HexagonShuffler ( MCInstrInfo const MCII,
MCSubtargetInfo const STI 
)
explicit

Definition at line 96 of file HexagonShuffler.cpp.

References reset().

Member Function Documentation

void HexagonShuffler::append ( MCInst const ID,
MCInst const Extender,
unsigned  S,
bool  X = false 
)
iterator llvm::HexagonShuffler::begin ( )
inline
bool HexagonShuffler::check ( )
iterator llvm::HexagonShuffler::end ( )
inline
unsigned llvm::HexagonShuffler::getError ( ) const
inline
void HexagonShuffler::reset ( )

Definition at line 102 of file HexagonShuffler.cpp.

References BundleFlags, llvm::SmallVectorImpl< T >::clear(), and SHUFFLE_SUCCESS.

Referenced by HexagonShuffler().

void llvm::HexagonShuffler::setError ( unsigned  Err)
inline

Definition at line 133 of file HexagonShuffler.h.

bool HexagonShuffler::shuffle ( )
unsigned llvm::HexagonShuffler::size ( ) const
inline

Member Data Documentation

int64_t llvm::HexagonShuffler::BundleFlags
protected

Definition at line 96 of file HexagonShuffler.h.

Referenced by llvm::HexagonMCShuffler::copyTo(), and reset().

MCInstrInfo const& llvm::HexagonShuffler::MCII
protected

Definition at line 97 of file HexagonShuffler.h.

Referenced by check(), and shuffle().

MCSubtargetInfo const& llvm::HexagonShuffler::STI
protected

Definition at line 98 of file HexagonShuffler.h.


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