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

#include "Target/Hexagon/MCTargetDesc/HexagonShuffler.h"

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

Public Types

using iterator = HexagonPacket::iterator
 

Public Member Functions

 HexagonShuffler (MCContext &Context, bool ReportErrors, 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)
 
void reportError (Twine const &Msg)
 

Protected Attributes

MCContextContext
 
int64_t BundleFlags
 
MCInstrInfo constMCII
 
MCSubtargetInfo constSTI
 
SMLoc Loc
 
bool ReportErrors
 

Detailed Description

Definition at line 140 of file HexagonShuffler.h.

Member Typedef Documentation

◆ iterator

Definition at line 159 of file HexagonShuffler.h.

Constructor & Destructor Documentation

◆ HexagonShuffler()

HexagonShuffler::HexagonShuffler ( MCContext Context,
bool  ReportErrors,
MCInstrInfo const MCII,
MCSubtargetInfo const STI 
)

Member Function Documentation

◆ append()

void HexagonShuffler::append ( MCInst const ID,
MCInst const Extender,
unsigned  S 
)

◆ begin()

iterator llvm::HexagonShuffler::begin ( )
inline

◆ check()

bool HexagonShuffler::check ( )

Check that the packet is legal and enforce relative insn order.

Definition at line 215 of file HexagonShuffler.cpp.

References assert(), begin(), checkHVXPipes(), llvm::SmallVectorImpl< T >::clear(), end(), first, llvm::HexagonMCInstrInfo::getDesc(), llvm::MCOperand::getInst(), llvm::MCInstrDesc::getOpcode(), llvm::MCInst::getOperand(), llvm::HexagonMCInstrInfo::getOtherReservedSlots(), llvm::HexagonMCInstrInfo::getType(), I, isBranch(), llvm::HexagonMCInstrInfo::isCofMax1(), llvm::HexagonMCInstrInfo::isNewValue(), llvm::MCInstrDesc::isReturn(), llvm::HexagonMCInstrInfo::isSoloAin1(), jumpSlots, CVIUnits::Lanes, llvm::HexagonInstr::lessCore(), llvm::HexagonInstr::lessCVI(), LLVM_FALLTHROUGH, MAX_JUMP_SLOTS, llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), MCII, llvm::HexagonMCInstrInfo::prefersSlot3(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), reportError(), second, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::parallel::sort(), STI, stores, llvm::HexagonII::TypeALU32_2op, llvm::HexagonII::TypeALU32_3op, llvm::HexagonII::TypeALU32_ADDI, llvm::HexagonII::TypeALU64, llvm::HexagonII::TypeCJ, llvm::HexagonII::TypeCR, llvm::HexagonII::TypeCVI_VM_LD, llvm::HexagonII::TypeCVI_VM_NEW_ST, llvm::HexagonII::TypeCVI_VM_ST, llvm::HexagonII::TypeCVI_VM_STU, llvm::HexagonII::TypeCVI_VM_TMP_LD, llvm::HexagonII::TypeCVI_VM_VP_LDU, llvm::HexagonII::TypeDUPLEX, llvm::HexagonII::TypeJ, llvm::HexagonII::TypeLD, llvm::HexagonII::TypeNCJ, llvm::HexagonII::TypeS_2op, llvm::HexagonII::TypeS_3op, llvm::HexagonII::TypeST, llvm::HexagonII::TypeV2LDST, llvm::HexagonII::TypeV4LDST, and CVIUnits::Units.

Referenced by isNeitherAnorX(), and shuffle().

◆ end()

iterator llvm::HexagonShuffler::end ( )
inline

◆ reportError()

void HexagonShuffler::reportError ( Twine const Msg)

Definition at line 606 of file HexagonShuffler.cpp.

References Context, Loc, llvm::MCContext::reportError(), and ReportErrors.

Referenced by check(), and shuffle().

◆ reset()

void HexagonShuffler::reset ( )

Definition at line 196 of file HexagonShuffler.cpp.

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

Referenced by HexagonShuffler().

◆ shuffle()

bool HexagonShuffler::shuffle ( )

◆ size()

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

Member Data Documentation

◆ BundleFlags

int64_t llvm::HexagonShuffler::BundleFlags
protected

Definition at line 152 of file HexagonShuffler.h.

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

◆ Context

MCContext& llvm::HexagonShuffler::Context
protected

Definition at line 151 of file HexagonShuffler.h.

Referenced by llvm::HexagonMCShuffler::HexagonMCShuffler(), and reportError().

◆ Loc

SMLoc llvm::HexagonShuffler::Loc
protected

Definition at line 155 of file HexagonShuffler.h.

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

◆ MCII

MCInstrInfo const& llvm::HexagonShuffler::MCII
protected

◆ ReportErrors

bool llvm::HexagonShuffler::ReportErrors
protected

Definition at line 156 of file HexagonShuffler.h.

Referenced by reportError().

◆ STI

MCSubtargetInfo const& llvm::HexagonShuffler::STI
protected

Definition at line 154 of file HexagonShuffler.h.

Referenced by check(), and llvm::HexagonMCShuffler::HexagonMCShuffler().


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