38#define DEBUG_TYPE "post-RA-hazard-rec"
57 char PostRAHazardRecognizer::ID = 0;
64 "Post RA hazard recognizer",
false,
false)
68 std::unique_ptr<ScheduleHazardRecognizer> HazardRec(
77 for (
auto &
MBB : Fn) {
82 unsigned NumPreNoops = HazardRec->PreEmitNoops(&
MI);
83 HazardRec->EmitNoops(NumPreNoops);
85 NumNoops += NumPreNoops;
89 HazardRec->EmitInstruction(&
MI);
90 if (HazardRec->atIssueLimit()) {
91 HazardRec->AdvanceCycle();
const HexagonInstrInfo * TII
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
This file defines the 'Statistic' class, which is designed to be an easy way to expose various metric...
#define STATISTIC(VARNAME, DESC)
Represent the analysis usage information of a pass.
void setPreservesCFG()
This function should be called by the pass, iff they do not:
ScheduleHazardRecognizer * CreateTargetPostRAHazardRecognizer(const InstrItineraryData *II, const ScheduleDAG *DAG) const override
Allocate and return a hazard recognizer to use for this target when scheduling the machine instructio...
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
virtual bool runOnMachineFunction(MachineFunction &MF)=0
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
Representation of each machine instruction.
TargetInstrInfo - Interface to description of machine instruction set.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an optimization pass for GlobalISel generic memory operations.
char & PostRAHazardRecognizerID
PostRAHazardRecognizer - This pass runs the post-ra hazard recognizer.