[llvm-bugs] [Bug 36669] [llvm-mca][x86] Teach how to identify instructions that perform partial register updates.
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Nov 8 10:09:49 PST 2018
https://bugs.llvm.org/show_bug.cgi?id=36669
Andrea Di Biagio <andrea.dibiagio at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|CONFIRMED |RESOLVED
--- Comment #2 from Andrea Di Biagio <andrea.dibiagio at gmail.com> ---
This is fixed by the following commit:
http://llvm.org/viewvc/llvm-project?view=revision&revision=337123
This allows users to describe registers that are renamed by a processor
register file.
Partial writes to registers that are not part of any "renamable" register class
have a false dependency on a previous definition of the underlying register.
If a partial write implicitly clears a super register, then it doesn't cause
partial register stalls.
That has been fixed by revision
http://llvm.org/viewvc/llvm-project?view=revision&revision=335113
"[llvm] r335113 - [llvm-mca][X86] Teach how to identify register writes that
implicitly clear the upper portion of a super-register."
We still don't correctly model merge opcodes which are generated on reads of
partially written register. This mostly affects Intel processors, where some
partial writes can be renamed, but cause a merge opcode to be issued on a
pipeline when the super-register is read.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20181108/4359a4f8/attachment-0001.html>
More information about the llvm-bugs
mailing list