diff options
author | Andrew Trick <atrick@apple.com> | 2012-10-09 23:44:26 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2012-10-09 23:44:26 +0000 |
commit | cfcf5202a196dd36b0fe872d9d4f5c89df11dad1 (patch) | |
tree | fa2dc0baf71eea777c746bd16487e63c88ee0efc /llvm/lib/CodeGen/TargetSchedule.cpp | |
parent | caf1dc7867ccfb82e3fc77e4898ecb29a68bb643 (diff) | |
download | bcm5719-llvm-cfcf5202a196dd36b0fe872d9d4f5c89df11dad1.tar.gz bcm5719-llvm-cfcf5202a196dd36b0fe872d9d4f5c89df11dad1.zip |
misched: Allow flags to disable hasInstrSchedModel/hasInstrItineraries for external users of TargetSchedule.
llvm-svn: 165564
Diffstat (limited to 'llvm/lib/CodeGen/TargetSchedule.cpp')
-rw-r--r-- | llvm/lib/CodeGen/TargetSchedule.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/TargetSchedule.cpp b/llvm/lib/CodeGen/TargetSchedule.cpp index 2c98982ee25..6e7cccce421 100644 --- a/llvm/lib/CodeGen/TargetSchedule.cpp +++ b/llvm/lib/CodeGen/TargetSchedule.cpp @@ -27,6 +27,14 @@ static cl::opt<bool> EnableSchedModel("schedmodel", cl::Hidden, cl::init(true), static cl::opt<bool> EnableSchedItins("scheditins", cl::Hidden, cl::init(true), cl::desc("Use InstrItineraryData for latency lookup")); +bool TargetSchedModel::hasInstrSchedModel() const { + return EnableSchedModel && SchedModel.hasInstrSchedModel(); +} + +bool TargetSchedModel::hasInstrItineraries() const { + return EnableSchedItins && !InstrItins.isEmpty(); +} + void TargetSchedModel::init(const MCSchedModel &sm, const TargetSubtargetInfo *sti, const TargetInstrInfo *tii) { @@ -47,14 +55,12 @@ int TargetSchedModel::getDefLatency(const MachineInstr *DefMI, if (FindMin) { // If MinLatency is invalid, then use the itinerary for MinLatency. If no // itinerary exists either, then use single cycle latency. - if (SchedModel.MinLatency < 0 - && !(EnableSchedItins && hasInstrItineraries())) { + if (SchedModel.MinLatency < 0 && !hasInstrItineraries()) { return 1; } return SchedModel.MinLatency; } - else if (!(EnableSchedModel && hasInstrSchedModel()) - && !(EnableSchedItins && hasInstrItineraries())) { + else if (!hasInstrSchedModel() && !hasInstrItineraries()) { return TII->defaultDefLatency(&SchedModel, DefMI); } // ...operand lookup required @@ -123,7 +129,7 @@ unsigned TargetSchedModel::computeOperandLatency( if (DefLatency >= 0) return DefLatency; - if (EnableSchedItins && hasInstrItineraries()) { + if (hasInstrItineraries()) { int OperLatency = 0; if (UseMI) { OperLatency = @@ -145,7 +151,7 @@ unsigned TargetSchedModel::computeOperandLatency( TII->defaultDefLatency(&SchedModel, DefMI)); return InstrLatency; } - assert(!FindMin && EnableSchedModel && hasInstrSchedModel() && + assert(!FindMin && hasInstrSchedModel() && "Expected a SchedModel for this cpu"); const MCSchedClassDesc *SCDesc = resolveSchedClass(DefMI); unsigned DefIdx = findDefIdx(DefMI, DefOperIdx); |