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: [email protected]
Reporter: [email protected]
CC: [email protected], [email protected],
[email protected]
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._______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs