LLVM: llvm::HexagonPacketizerList Class Reference (original) (raw)

#include "[Target/Hexagon/HexagonVLIWPacketizer.h](HexagonVLIWPacketizer%5F8h%5Fsource.html)"

Public Member Functions
HexagonPacketizerList (MachineFunction &MF, MachineLoopInfo &MLI, AAResults *AA, const MachineBranchProbabilityInfo *MBPI, bool Minimal)
void initPacketizerState () override
bool ignorePseudoInstruction (const MachineInstr &MI, const MachineBasicBlock *MBB) override
bool isSoloInstruction (const MachineInstr &MI) override
bool isLegalToPacketizeTogether (SUnit *SUI, SUnit *SUJ) override
bool isLegalToPruneDependencies (SUnit *SUI, SUnit *SUJ) override
bool foundLSInPacket ()
MachineBasicBlock::iterator addToPacket (MachineInstr &MI) override
void endPacket (MachineBasicBlock *MBB, MachineBasicBlock::iterator MI) override
bool shouldAddToPacket (const MachineInstr &MI) override
void unpacketizeSoloInstrs (MachineFunction &MF)
Public Member Functions inherited from llvm::VLIWPacketizerList
VLIWPacketizerList (MachineFunction &MF, MachineLoopInfo &MLI, AAResults *AA)
VLIWPacketizerList & operator= (const VLIWPacketizerList &other)=delete
VLIWPacketizerList (const VLIWPacketizerList &other)=delete
virtual ~VLIWPacketizerList ()
void PacketizeMIs (MachineBasicBlock *MBB, MachineBasicBlock::iterator BeginItr, MachineBasicBlock::iterator EndItr)
DFAPacketizer * getResourceTracker ()
void addMutation (std::unique_ptr< ScheduleDAGMutation > Mutation)
bool alias (const MachineInstr &MI1, const MachineInstr &MI2, bool UseTBAA=true) const
Protected Member Functions
bool getmemShufDisabled ()
void setmemShufDisabled (bool val)
bool isCallDependent (const MachineInstr &MI, SDep::Kind DepType, unsigned DepReg)
bool promoteToDotCur (MachineInstr &MI, SDep::Kind DepType, MachineBasicBlock::iterator &MII, const TargetRegisterClass *RC)
bool canPromoteToDotCur (const MachineInstr &MI, const SUnit *PacketSU, unsigned DepReg, MachineBasicBlock::iterator &MII, const TargetRegisterClass *RC)
void cleanUpDotCur ()
bool promoteToDotNew (MachineInstr &MI, SDep::Kind DepType, MachineBasicBlock::iterator &MII, const TargetRegisterClass *RC)
bool canPromoteToDotNew (const MachineInstr &MI, const SUnit *PacketSU, unsigned DepReg, MachineBasicBlock::iterator &MII, const TargetRegisterClass *RC)
bool canPromoteToNewValue (const MachineInstr &MI, const SUnit *PacketSU, unsigned DepReg, MachineBasicBlock::iterator &MII)
bool canPromoteToNewValueStore (const MachineInstr &MI, const MachineInstr &PacketMI, unsigned DepReg)
bool demoteToDotOld (MachineInstr &MI)
bool useCallersSP (MachineInstr &MI)
void useCalleesSP (MachineInstr &MI)
bool updateOffset (SUnit *SUI, SUnit *SUJ)
Return true if we can update the offset in MI so that MI and MJ can be packetized together.
void undoChangedOffset (MachineInstr &MI)
Undo the changed offset.
bool arePredicatesComplements (MachineInstr &MI1, MachineInstr &MI2)
bool restrictingDepExistInPacket (MachineInstr &, unsigned)
bool isNewifiable (const MachineInstr &MI, const TargetRegisterClass *NewRC)
bool isCurifiable (MachineInstr &MI)
bool cannotCoexist (const MachineInstr &MI, const MachineInstr &MJ)
bool isPromotedToDotNew () const
bool tryAllocateResourcesForConstExt (bool Reserve)
bool canReserveResourcesForConstExt ()
void reserveResourcesForConstExt ()
bool hasDeadDependence (const MachineInstr &I, const MachineInstr &J)
bool hasControlDependence (const MachineInstr &I, const MachineInstr &J)
bool hasRegMaskDependence (const MachineInstr &I, const MachineInstr &J)
bool hasDualStoreDependence (const MachineInstr &I, const MachineInstr &J)
bool producesStall (const MachineInstr &MI)
unsigned int calcStall (const MachineInstr &MI)
Protected Attributes
const MachineBranchProbabilityInfo * MBPI
A handle to the branch probability pass.
const MachineLoopInfo * MLI
Protected Attributes inherited from llvm::VLIWPacketizerList
MachineFunction & MF
const TargetInstrInfo * TII
AAResults * AA
DefaultVLIWScheduler * VLIWScheduler
std::vector< MachineInstr * > CurrentPacketMIs
DFAPacketizer * ResourceTracker
std::map< MachineInstr *, SUnit * > MIToSUnit

Definition at line 27 of file HexagonVLIWPacketizer.h.

addToPacket()

Reimplemented from llvm::VLIWPacketizerList.

Definition at line 1701 of file HexagonVLIWPacketizer.cpp.

References assert(), calcStall(), canReserveResourcesForConstExt(), llvm::VLIWPacketizerList::CurrentPacketMIs, demoteToDotOld(), endPacket(), MBB, MI, producesStall(), reserveResourcesForConstExt(), llvm::VLIWPacketizerList::ResourceTracker, tryAllocateResourcesForConstExt(), and useCalleesSP().

arePredicatesComplements()

calcStall()

cannotCoexist()

canPromoteToDotCur()

canPromoteToDotNew()

Definition at line 841 of file HexagonVLIWPacketizer.cpp.

References canPromoteToNewValue(), D(), llvm::dwarf_linker::DebugLoc, DisableVecDblNVStores, llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::MachineInstr::isImplicitDef(), isImplicitDependency(), llvm::MachineInstr::isInlineAsm(), isNewifiable(), MBPI, llvm::VLIWPacketizerList::MF, MI, and llvm::VLIWPacketizerList::ResourceTracker.

Referenced by isLegalToPacketizeTogether().

canPromoteToNewValue()

canPromoteToNewValueStore()

Definition at line 642 of file HexagonVLIWPacketizer.cpp.

References assert(), llvm::VLIWPacketizerList::CurrentPacketMIs, getAbsSetOperand(), llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), getPostIncrementOperand(), getPredicateSense(), getReg(), llvm::MachineOperand::getReg(), getStoreValueOperand(), I, isLoadAbsSet(), llvm::MachineOperand::isReg(), llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), MI, llvm::VLIWPacketizerList::MIToSUnit, llvm::MachineInstr::modifiesRegister(), and llvm::MachineInstr::operands().

Referenced by canPromoteToNewValue().

canReserveResourcesForConstExt()

bool HexagonPacketizerList::canReserveResourcesForConstExt ( ) protected

cleanUpDotCur()

void HexagonPacketizerList::cleanUpDotCur ( ) protected

demoteToDotOld()

endPacket()

Reimplemented from llvm::VLIWPacketizerList.

Definition at line 1780 of file HexagonVLIWPacketizer.cpp.

References llvm::VLIWPacketizerList::CurrentPacketMIs, llvm::dbgs(), llvm::finalizeBundle(), foundLSInPacket(), llvm::MachineInstrBundleIterator< Ty, IsReverse >::getInstrIterator(), getmemShufDisabled(), I, LLVM_DEBUG, llvm::make_range(), MBB, MI, llvm::VLIWPacketizerList::ResourceTracker, setmemShufDisabled(), and llvm::utohexstr().

Referenced by addToPacket().

foundLSInPacket()

bool HexagonPacketizerList::foundLSInPacket ( )

getmemShufDisabled()

bool llvm::HexagonPacketizerList::getmemShufDisabled ( ) inlineprotected

hasControlDependence()

hasDeadDependence()

hasDualStoreDependence()

hasRegMaskDependence()

ignorePseudoInstruction()

initPacketizerState()

void HexagonPacketizerList::initPacketizerState ( ) overridevirtual

isCallDependent()

isCurifiable()

isLegalToPacketizeTogether()

bool HexagonPacketizerList::isLegalToPacketizeTogether ( SUnit * SUI, SUnit * SUJ ) overridevirtual

Reimplemented from llvm::VLIWPacketizerList.

Definition at line 1316 of file HexagonVLIWPacketizer.cpp.

References llvm::VLIWPacketizerList::alias(), llvm::SDep::Anti, arePredicatesComplements(), assert(), cannotCoexist(), canPromoteToDotCur(), canPromoteToDotNew(), llvm::VLIWPacketizerList::CurrentPacketMIs, llvm::SDep::Data, llvm::find(), llvm::SUnit::getInstr(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), hasControlDependence(), hasDeadDependence(), hasDualStoreDependence(), llvm::MachineInstr::hasOrderedMemoryRef(), hasRegMaskDependence(), llvm::HexagonSubtarget::hasV65Ops(), I, II, llvm::MachineInstr::isBranch(), llvm::MachineInstr::isCall(), isCallDependent(), isDirectJump(), llvm::MachineOperand::isReg(), isRegDependence(), isSoloInstruction(), llvm::SUnit::isSucc(), llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), llvm::VLIWPacketizerList::MF, llvm::MachineInstr::modifiesRegister(), Opc, llvm::SDep::Order, llvm::SDep::Output, PacketizeVolatiles, promoteToDotCur(), promoteToDotNew(), llvm::MachineInstr::readsRegister(), setmemShufDisabled(), Slot1Store, llvm::SUnit::Succs, and useCallersSP().

isLegalToPruneDependencies()

bool HexagonPacketizerList::isLegalToPruneDependencies ( SUnit * SUI, SUnit * SUJ ) overridevirtual

isNewifiable()

isPromotedToDotNew()

bool llvm::HexagonPacketizerList::isPromotedToDotNew ( ) const inlineprotected

isSoloInstruction()

producesStall()

promoteToDotCur()

promoteToDotNew()

reserveResourcesForConstExt()

void HexagonPacketizerList::reserveResourcesForConstExt ( ) protected

restrictingDepExistInPacket()

setmemShufDisabled()

void llvm::HexagonPacketizerList::setmemShufDisabled ( bool val) inlineprotected

shouldAddToPacket()

tryAllocateResourcesForConstExt()

bool HexagonPacketizerList::tryAllocateResourcesForConstExt ( bool Reserve) protected

undoChangedOffset()

void HexagonPacketizerList::undoChangedOffset ( MachineInstr & MI) protected

unpacketizeSoloInstrs()

updateOffset()

useCalleesSP()

void HexagonPacketizerList::useCalleesSP ( MachineInstr & MI) protected

useCallersSP()

MBPI

MLI


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