LLVM  14.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 Fatal, MCInstrInfo const &MCII, MCSubtargetInfo const &STI, MCInst &MCB)
 
 HexagonMCShuffler (MCContext &Context, bool Fatal, 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 ()
 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)
 

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)
 
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)
 
void permitNonSlot ()
 
Optional< HexagonPackettryAuction (HexagonPacketSummary const &Summary) const
 
HexagonPacketSummary GetPacketSummary ()
 
bool ValidPacketMemoryOps (HexagonPacketSummary const &Summary) const
 
bool ValidResourceUsage (HexagonPacketSummary const &Summary)
 
bool validPacketInsts () const
 
- 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  Fatal,
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  Fatal,
MCInstrInfo const MCII,
MCSubtargetInfo const STI,
MCInst MCB,
MCInst const AddMI,
bool  InsertAtFront 
)
inline

Definition at line 37 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: