LLVM 22.0.0git
llvm::HexagonMCShuffler Class Reference

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

Inheritance diagram for llvm::HexagonMCShuffler:
[legend]

Public Member Functions

 HexagonMCShuffler (MCContext &Context, bool ReportErrors, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB)
 HexagonMCShuffler (MCContext &Context, bool ReportErrors, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB, MCInst const &AddMI, bool InsertAtFront)
void copyTo (MCInst &MCB)
bool reshuffleTo (MCInst &MCB)
Public Member Functions inherited from llvm::HexagonShuffler
 HexagonShuffler (MCContext &Context, bool ReportErrors, MCInstrInfo const &MCII, MCSubtargetInfo const &STI)
void reset ()
bool check (const bool RequireShuffle=true)
 Check that the packet is legal and enforce relative insn order.
bool shuffle ()
unsigned size () const
bool isMemReorderDisabled () const
iterator begin ()
iterator end ()
const_iterator cbegin () const
const_iterator cend () const
packet_range insts (HexagonPacket &P)
const_packet_range insts (HexagonPacket const &P) const
packet_range insts ()
const_packet_range insts () const
bool HasInstWith (InstPredicate Pred) const
void append (MCInst const &ID, MCInst const *Extender, unsigned S)
void reportError (Twine const &Msg)
void reportResourceError (HexagonPacketSummary const &Summary, StringRef Err)
void reportResourceUsage (HexagonPacketSummary const &Summary)

Additional Inherited Members

Public Types inherited from llvm::HexagonShuffler
using iterator = HexagonPacket::iterator
using const_iterator = HexagonPacket::const_iterator
using packet_range = iterator_range<HexagonPacket::iterator>
using const_packet_range = iterator_range<HexagonPacket::const_iterator>
using InstPredicate = bool (*)(MCInstrInfo const &, MCInst const &)
Protected Member Functions inherited from llvm::HexagonShuffler
bool applySlotRestrictions (HexagonPacketSummary const &Summary, const bool DoShuffle)
void restrictSlot1AOK (HexagonPacketSummary const &Summary)
void restrictNoSlot1Store (HexagonPacketSummary const &Summary)
void restrictNoSlot1 ()
bool restrictStoreLoadOrder (HexagonPacketSummary const &Summary)
void restrictBranchOrder (HexagonPacketSummary const &Summary)
void restrictPreferSlot3 (HexagonPacketSummary const &Summary, const bool DoShuffle)
void permitNonSlot ()
std::optional< HexagonPackettryAuction (HexagonPacketSummary const &Summary)
HexagonPacketSummary GetPacketSummary ()
bool ValidPacketMemoryOps (HexagonPacketSummary const &Summary) const
bool ValidResourceUsage (HexagonPacketSummary const &Summary)
Protected Attributes inherited from llvm::HexagonShuffler
MCContextContext
int64_t BundleFlags
MCInstrInfo constMCII
MCSubtargetInfo constSTI
SMLoc Loc
bool ReportErrors
bool CheckFailure
std::vector< std::pair< SMLoc, std::string > > AppliedRestrictions

Detailed Description

Definition at line 29 of file HexagonMCShuffler.h.

Constructor & Destructor Documentation

◆ HexagonMCShuffler() [1/2]

llvm::HexagonMCShuffler::HexagonMCShuffler ( MCContext & Context,
bool ReportErrors,
MCInstrInfo const & MCII,
MCSubtargetInfo const & STI,
MCInst & MCB )
inline

◆ HexagonMCShuffler() [2/2]

llvm::HexagonMCShuffler::HexagonMCShuffler ( MCContext & Context,
bool ReportErrors,
MCInstrInfo const & MCII,
MCSubtargetInfo const & STI,
MCInst & MCB,
MCInst const & AddMI,
bool InsertAtFront )
inline

Member Function Documentation

◆ copyTo()

◆ reshuffleTo()

bool HexagonMCShuffler::reshuffleTo ( MCInst & MCB)

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