[llvm] TargetSchedule: factor out code in computeOperandLatency (NFC) (PR #73769)
Francesco Petrogalli via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 29 13:58:46 PST 2023
================
@@ -186,21 +189,16 @@ unsigned TargetSchedModel::computeOperandLatency(
unsigned DefClass = DefMI->getDesc().getSchedClass();
OperLatency = InstrItins.getOperandCycle(DefClass, DefOperIdx);
}
- if (OperLatency >= 0)
- return OperLatency;
-
- // No operand latency was found.
- unsigned InstrLatency = TII->getInstrLatency(&InstrItins, *DefMI);
// Expected latency is the max of the stage latency and itinerary props.
// Rather than directly querying InstrItins stage latency, we call a TII
// hook to allow subtargets to specialize latency. This hook is only
// applicable to the InstrItins model. InstrSchedModel should model all
// special cases without TII hooks.
- InstrLatency =
- std::max(InstrLatency, TII->defaultDefLatency(SchedModel, *DefMI));
- return InstrLatency;
+ return OperLatency >= 0 ? OperLatency
----------------
fpetrogalli wrote:
If we change the interface of the TTI, this would become something like
```suggestion
return OperLatency.has_value() ? OperLatency
```
which would prevent readers of the code asking the question: what if the latency is negative?
https://github.com/llvm/llvm-project/pull/73769
More information about the llvm-commits
mailing list