[llvm-bugs] [Bug 42202] New: [mca] modelling decoder unit throttling
via llvm-bugs
llvm-bugs at lists.llvm.org
Sat Jun 8 22:28:15 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=42202
Bug ID: 42202
Summary: [mca] modelling decoder unit throttling
Product: tools
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: llvm-mca
Assignee: unassignedbugs at nondot.org
Reporter: lebedev.ri at gmail.com
CC: andrea.dibiagio at gmail.com, llvm-bugs at lists.llvm.org,
matthew.davis at sony.com
This is two-fold issue:
* Instructions that generate two macro-ops are called double instructions.
The decoders in the Piledriver, Steamroller, and Excavator can handle four
single instructions (1-1-1-1) or one double instruction and two single
(2-1-1) or two double instructions (2-2) in one clock cycle. The Bulldozer
can handle (1-1-1-1) and (2-1-1), but not (2-2).
I.e. e.g. this is incorrect: https://godbolt.org/z/pT2Tgz
* Instructions that generate more than two macro-ops are using microcode.
The decoders cannot do anything else while microcode is generated.
This means that a decoder can stop decoding for several clock cycles
after meeting an instruction that generates more than two macro-ops.
Interestingly, this seems to be already handled? https://godbolt.org/z/HUJH1R
--
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/20190609/f850684e/attachment.html>
More information about the llvm-bugs
mailing list