From: Eric Christopher Date: Mon, 2 Feb 2015 22:11:40 +0000 (+0000) Subject: Move HexagonMachineScheduler to use the subtarget off of the X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b1427d95e2dfd35863125a38b1dcf58bf6ca4c92;p=oota-llvm.git Move HexagonMachineScheduler to use the subtarget off of the MachineFunction and update all uses accordingly including VLIWResourceModel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227872 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Hexagon/HexagonMachineScheduler.cpp b/lib/Target/Hexagon/HexagonMachineScheduler.cpp index 97c626fdf7a..35f732cd620 100644 --- a/lib/Target/Hexagon/HexagonMachineScheduler.cpp +++ b/lib/Target/Hexagon/HexagonMachineScheduler.cpp @@ -205,20 +205,17 @@ void ConvergingVLIWScheduler::initialize(ScheduleDAGMI *dag) { // Initialize the HazardRecognizers. If itineraries don't exist, are empty, or // are disabled, then these HazardRecs will be disabled. const InstrItineraryData *Itin = DAG->getSchedModel()->getInstrItineraries(); - const TargetMachine &TM = DAG->MF.getTarget(); + const TargetSubtargetInfo &STI = DAG->MF.getSubtarget(); + const TargetInstrInfo *TII = STI.getInstrInfo(); delete Top.HazardRec; delete Bot.HazardRec; - Top.HazardRec = - TM.getSubtargetImpl()->getInstrInfo()->CreateTargetMIHazardRecognizer( - Itin, DAG); - Bot.HazardRec = - TM.getSubtargetImpl()->getInstrInfo()->CreateTargetMIHazardRecognizer( - Itin, DAG); + Top.HazardRec = TII->CreateTargetMIHazardRecognizer(Itin, DAG); + Bot.HazardRec = TII->CreateTargetMIHazardRecognizer(Itin, DAG); delete Top.ResourceModel; delete Bot.ResourceModel; - Top.ResourceModel = new VLIWResourceModel(TM, DAG->getSchedModel()); - Bot.ResourceModel = new VLIWResourceModel(TM, DAG->getSchedModel()); + Top.ResourceModel = new VLIWResourceModel(STI, DAG->getSchedModel()); + Bot.ResourceModel = new VLIWResourceModel(STI, DAG->getSchedModel()); assert((!llvm::ForceTopDown || !llvm::ForceBottomUp) && "-misched-topdown incompatible with -misched-bottomup"); diff --git a/lib/Target/Hexagon/HexagonMachineScheduler.h b/lib/Target/Hexagon/HexagonMachineScheduler.h index 1e023c32bb8..60343442e32 100644 --- a/lib/Target/Hexagon/HexagonMachineScheduler.h +++ b/lib/Target/Hexagon/HexagonMachineScheduler.h @@ -54,11 +54,9 @@ class VLIWResourceModel { unsigned TotalPackets; public: -VLIWResourceModel(const TargetMachine &TM, const TargetSchedModel *SM) : - SchedModel(SM), TotalPackets(0) { - ResourcesModel = - TM.getSubtargetImpl()->getInstrInfo()->CreateTargetScheduleState( - *TM.getSubtargetImpl()); + VLIWResourceModel(const TargetSubtargetInfo &STI, const TargetSchedModel *SM) + : SchedModel(SM), TotalPackets(0) { + ResourcesModel = STI.getInstrInfo()->CreateTargetScheduleState(STI); // This hard requirement could be relaxed, // but for now do not let it proceed.