LLVM  16.0.0git
Public Member Functions | List of all members
llvm::HexagonMCShuffler Class Reference

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

Inheritance diagram for llvm::HexagonMCShuffler:
Inheritance graph
[legend]
Collaboration diagram for llvm::HexagonMCShuffler:
Collaboration graph
[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. More...
 
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
 
const MCInstrInfoMCII
 
const MCSubtargetInfoSTI
 
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

Definition at line 31 of file HexagonMCShuffler.h.

◆ HexagonMCShuffler() [2/2]

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

Definition at line 38 of file HexagonMCShuffler.h.

Member Function Documentation

◆ copyTo()

void HexagonMCShuffler::copyTo ( MCInst MCB)

◆ reshuffleTo()

bool HexagonMCShuffler::reshuffleTo ( MCInst MCB)

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