llvm-project/llvm/lib/MCA
Andrea Di Biagio 4a5b191703 [X86][MCA] Address the latest issues with MULX reported in PR51495.
It turns out that SchedWrite WriteIMulH was always assigned to the low half of
the result of a MULX (rather than to the high half).

To avoid confusion, this patch swaps the two MULX writes in the tablegen
definition of MULX32/64.  That way, write names better describe what they
actually refer to; this also avoids further complications if in future we decide
to reuse the same MulH writes to also model other scalar integer multiply
instructions.  I also had to swap the latency values for the two MULX writes to
make sure that the change is effectively an NFC. In fact, none of the existing
x86 tests were affected by this small refactoring.

This patch also fixes a bug in MCA: a wrong latency value was propagated for
instructions that perform multiple writes to a same register.  This last issue
was found by Roman while testing MULX on targets that define a different latency
for the Low/High part of the result.

Differential Revision: https://reviews.llvm.org/D108727
2021-08-26 12:08:20 +01:00
..
HardwareUnits [X86][MCA] Address the latest issues with MULX reported in PR51495. 2021-08-26 12:08:20 +01:00
Stages [MCA] Fixing bug that was causing LSUnit not to realize an instruction finished executing when the instruction has 0 latency. 2021-08-20 10:32:37 -07:00
CMakeLists.txt [MCA] Moved View.h and View.cpp from /tools/llvm-mca/ to /lib/MCA/. 2021-08-25 12:12:47 -07:00
CodeEmitter.cpp [MCA][NFCI] Minor changes to InstrBuilder and Instruction. 2021-05-31 17:05:13 +01:00
Context.cpp [MCA] Use LSU for the in-order pipeline 2021-07-29 14:40:23 +03:00
CustomBehaviour.cpp [MCA] Moved View.h and View.cpp from /tools/llvm-mca/ to /lib/MCA/. 2021-08-25 12:12:47 -07:00
HWEventListener.cpp
InstrBuilder.cpp Reapply "[MCA] Adding the CustomBehaviour class to llvm-mca". 2021-06-16 16:54:48 +01:00
Instruction.cpp [MCA] Improved handling of negative read-advance cycles. 2021-03-23 14:47:23 +00:00
Pipeline.cpp
Support.cpp
View.cpp [MCA] Moved View.h and View.cpp from /tools/llvm-mca/ to /lib/MCA/. 2021-08-25 12:12:47 -07:00