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
Collaboration diagram for llvm::HexagonShuffler:
Collaboration graph

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

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

◆ 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 ( )

◆ 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

Member Data Documentation

◆ BundleFlags

int64_t llvm::HexagonShuffler::BundleFlags

Definition at line 152 of file HexagonShuffler.h.

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

◆ Context

MCContext& llvm::HexagonShuffler::Context

Definition at line 151 of file HexagonShuffler.h.

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

◆ Loc

SMLoc llvm::HexagonShuffler::Loc

Definition at line 155 of file HexagonShuffler.h.

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


MCInstrInfo const& llvm::HexagonShuffler::MCII

◆ ReportErrors

bool llvm::HexagonShuffler::ReportErrors

Definition at line 156 of file HexagonShuffler.h.

Referenced by reportError().


MCSubtargetInfo const& llvm::HexagonShuffler::STI

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: