24 #ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZHAZARDRECOGNIZER_H
25 #define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZHAZARDRECOGNIZER_H
46 unsigned CurrGroupSize;
59 unsigned CriticalResourceIdx;
62 inline unsigned getNumDecoderSlots(
SUnit *SU)
const;
65 bool fitsIntoCurrentGroup(
SUnit *SU)
const;
70 unsigned getCurrCycleIdx();
74 unsigned LastFPdOpCycleIdx;
79 unsigned getCurrGroupSize() {
return CurrGroupSize;};
82 void nextGroup(
bool DbgOutput =
true);
85 void clearProcResCounters();
89 bool isFPdOpPreferred_distance(
const SUnit *SU);
100 void Reset()
override;
void dumpCurrGroup(std::string Msg="") const
void dumpProcResourceCounters() const
ScheduleDAGMI is an implementation of ScheduleDAGInstrs that simply schedules machine instructions ac...
int groupingCost(SUnit *SU) const
Return the cost of decoder grouping for SU.
const TargetSchedModel * getSchedModel() const
Get the machine model for instruction scheduling.
void Reset() override
Reset - This callback is invoked when a new block of instructions is about to be schedule.
Provide an instruction scheduling machine model to CodeGen passes.
SystemZHazardRecognizer(const MachineSchedContext *C)
SystemZHazardRecognizer maintains the state during scheduling.
void setDAG(ScheduleDAGMI *dag)
HazardType getHazardType(SUnit *m, int Stalls=0) override
getHazardType - Return the hazard type of emitting this node.
void EmitInstruction(SUnit *SU) override
EmitInstruction - This callback is invoked when an instruction is emitted, to advance the hazard stat...
HazardRecognizer - This determines whether or not an instruction can be issued this cycle...
int resourcesCost(SUnit *SU)
Return the cost of SU in regards to processor resources usage.
static GCRegistry::Add< ShadowStackGC > C("shadow-stack","Very portable GC for uncooperative code generators")
MachineSchedContext provides enough context from the MachineScheduler pass for the target to instanti...
This class implements an extremely fast bulk output stream that can only output to a stream...
SUnit - Scheduling unit. This is a node in the scheduling DAG.
void dumpSU(SUnit *SU, raw_ostream &OS) const