[PATCH] D49310: [llvm-mca][BtVer2] Teach how to identify dependency-breaking idioms.
Andrea Di Biagio via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 20 08:23:37 PDT 2018
andreadb added inline comments.
================
Comment at: tools/llvm-mca/DispatchStage.cpp:110
// An example of dependency-breaking instruction on X86 is a zero-idiom XOR.
- if (!Desc.isZeroLatency())
- for (std::unique_ptr<ReadState> &RS : IS.getUses())
----------------
lebedev.ri wrote:
> andreadb wrote:
> > lebedev.ri wrote:
> > > So it will no longer even consider the sched profile?
> > Not sure I understand the question. I am definitely using profile information from the scheduling model.
> What i'm asking is - what happens if sched model says that instruction N has zero latency, but `isDependencyBreaking()` does not say that?
In that case, instruction N will have to wait in the scheduler until input registers are all available. Then it is executed.
https://reviews.llvm.org/D49310
More information about the llvm-commits
mailing list