LLVM  4.0.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::HexagonPacketizerList Class Reference

#include <HexagonVLIWPacketizer.h>

Inheritance diagram for llvm::HexagonPacketizerList:
[legend]
Collaboration diagram for llvm::HexagonPacketizerList:
[legend]

Public Member Functions

 HexagonPacketizerList (MachineFunction &MF, MachineLoopInfo &MLI, AliasAnalysis *AA, const MachineBranchProbabilityInfo *MBPI)
 
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
 
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, AliasAnalysis *AA)
 
virtual ~VLIWPacketizerList ()
 
void PacketizeMIs (MachineBasicBlock *MBB, MachineBasicBlock::iterator BeginItr, MachineBasicBlock::iterator EndItr)
 
DFAPacketizergetResourceTracker ()
 
void addMutation (std::unique_ptr< ScheduleDAGMutation > Mutation)
 

Protected Member Functions

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 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 hasV4SpecificDependence (const MachineInstr &I, const MachineInstr &J)
 
bool producesStall (const MachineInstr &MI)
 

Protected Attributes

const
MachineBranchProbabilityInfo
MBPI
 A handle to the branch probability pass. More...
 
const MachineLoopInfoMLI
 
- Protected Attributes inherited from llvm::VLIWPacketizerList
MachineFunctionMF
 
const TargetInstrInfoTII
 
AliasAnalysisAA
 
DefaultVLIWSchedulerVLIWScheduler
 
std::vector< MachineInstr * > CurrentPacketMIs
 
DFAPacketizerResourceTracker
 
std::map< MachineInstr *, SUnit * > MIToSUnit
 

Detailed Description

Definition at line 10 of file HexagonVLIWPacketizer.h.

Constructor & Destructor Documentation

Hexagon false HexagonPacketizerList::HexagonPacketizerList ( MachineFunction MF,
MachineLoopInfo MLI,
AliasAnalysis AA,
const MachineBranchProbabilityInfo MBPI 
)

Definition at line 101 of file HexagonVLIWPacketizer.cpp.

Member Function Documentation

MachineBasicBlock::iterator HexagonPacketizerList::addToPacket ( MachineInstr MI)
overridevirtual
bool HexagonPacketizerList::arePredicatesComplements ( MachineInstr MI1,
MachineInstr MI2 
)
protected
bool HexagonPacketizerList::cannotCoexist ( const MachineInstr MI,
const MachineInstr MJ 
)
protected
bool HexagonPacketizerList::canPromoteToDotCur ( const MachineInstr MI,
const SUnit PacketSU,
unsigned  DepReg,
MachineBasicBlock::iterator MII,
const TargetRegisterClass RC 
)
protected
bool HexagonPacketizerList::canPromoteToDotNew ( const MachineInstr MI,
const SUnit PacketSU,
unsigned  DepReg,
MachineBasicBlock::iterator MII,
const TargetRegisterClass RC 
)
protected
bool HexagonPacketizerList::canPromoteToNewValue ( const MachineInstr MI,
const SUnit PacketSU,
unsigned  DepReg,
MachineBasicBlock::iterator MII 
)
protected
bool HexagonPacketizerList::canPromoteToNewValueStore ( const MachineInstr MI,
const MachineInstr PacketMI,
unsigned  DepReg 
)
protected
bool HexagonPacketizerList::canReserveResourcesForConstExt ( )
protected

Definition at line 250 of file HexagonVLIWPacketizer.cpp.

References tryAllocateResourcesForConstExt().

Referenced by addToPacket().

void HexagonPacketizerList::cleanUpDotCur ( )
protected
bool HexagonPacketizerList::demoteToDotOld ( MachineInstr MI)
protected
void HexagonPacketizerList::endPacket ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MI 
)
overridevirtual
bool HexagonPacketizerList::hasControlDependence ( const MachineInstr I,
const MachineInstr J 
)
protected
bool HexagonPacketizerList::hasDeadDependence ( const MachineInstr I,
const MachineInstr J 
)
protected
bool HexagonPacketizerList::hasV4SpecificDependence ( const MachineInstr I,
const MachineInstr J 
)
protected
bool HexagonPacketizerList::ignorePseudoInstruction ( const MachineInstr MI,
const MachineBasicBlock MBB 
)
overridevirtual
void HexagonPacketizerList::initPacketizerState ( )
overridevirtual

Reimplemented from llvm::VLIWPacketizerList.

Definition at line 957 of file HexagonVLIWPacketizer.cpp.

bool HexagonPacketizerList::isCallDependent ( const MachineInstr MI,
SDep::Kind  DepType,
unsigned  DepReg 
)
protected
bool llvm::HexagonPacketizerList::isCurifiable ( MachineInstr MI)
protected
bool HexagonPacketizerList::isLegalToPacketizeTogether ( SUnit SUI,
SUnit SUJ 
)
overridevirtual
bool HexagonPacketizerList::isLegalToPruneDependencies ( SUnit SUI,
SUnit SUJ 
)
overridevirtual
bool HexagonPacketizerList::isNewifiable ( const MachineInstr MI,
const TargetRegisterClass NewRC 
)
protected
bool llvm::HexagonPacketizerList::isPromotedToDotNew ( ) const
inlineprotected

Definition at line 104 of file HexagonVLIWPacketizer.h.

bool HexagonPacketizerList::isSoloInstruction ( const MachineInstr MI)
overridevirtual
bool HexagonPacketizerList::producesStall ( const MachineInstr MI)
protected
bool HexagonPacketizerList::promoteToDotCur ( MachineInstr MI,
SDep::Kind  DepType,
MachineBasicBlock::iterator MII,
const TargetRegisterClass RC 
)
protected
bool HexagonPacketizerList::promoteToDotNew ( MachineInstr MI,
SDep::Kind  DepType,
MachineBasicBlock::iterator MII,
const TargetRegisterClass RC 
)
protected
void HexagonPacketizerList::reserveResourcesForConstExt ( )
protected

Definition at line 245 of file HexagonVLIWPacketizer.cpp.

References llvm_unreachable, and tryAllocateResourcesForConstExt().

Referenced by addToPacket().

bool HexagonPacketizerList::restrictingDepExistInPacket ( MachineInstr MI,
unsigned  DepReg 
)
protected
bool HexagonPacketizerList::shouldAddToPacket ( const MachineInstr MI)
overridevirtual

Reimplemented from llvm::VLIWPacketizerList.

Definition at line 1607 of file HexagonVLIWPacketizer.cpp.

References producesStall().

bool HexagonPacketizerList::tryAllocateResourcesForConstExt ( bool  Reserve)
protected
void HexagonPacketizerList::unpacketizeSoloInstrs ( MachineFunction MF)
void HexagonPacketizerList::useCalleesSP ( MachineInstr MI)
protected
bool HexagonPacketizerList::useCallersSP ( MachineInstr MI)
protected

Member Data Documentation

const MachineBranchProbabilityInfo* llvm::HexagonPacketizerList::MBPI
protected

A handle to the branch probability pass.

Definition at line 36 of file HexagonVLIWPacketizer.h.

Referenced by promoteToDotNew().

const MachineLoopInfo* llvm::HexagonPacketizerList::MLI
protected

Definition at line 37 of file HexagonVLIWPacketizer.h.

Referenced by producesStall().


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