LLVM  4.0.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_ERRATA2,
  SHUFFLE_ERROR_STORE_LOAD_CONFLICT, 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 133 of file HexagonShuffler.h.

Member Typedef Documentation

Definition at line 151 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_ERRATA2 

Errata violation (v60).

SHUFFLE_ERROR_STORE_LOAD_CONFLICT 

store/load conflict

SHUFFLE_ERROR_UNKNOWN 

Unknown error.

Definition at line 153 of file HexagonShuffler.h.

Constructor & Destructor Documentation

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

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 151 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 185 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 146 of file HexagonShuffler.h.

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

MCInstrInfo const& llvm::HexagonShuffler::MCII
protected

Definition at line 147 of file HexagonShuffler.h.

Referenced by append(), check(), and shuffle().

MCSubtargetInfo const& llvm::HexagonShuffler::STI
protected

Definition at line 148 of file HexagonShuffler.h.


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