llvm-project/llvm/test/tools/llvm-mca/X86
Andrea Di Biagio e074ac60b4 [MCA] Add an experimental MicroOpQueue stage.
This patch adds an experimental stage named MicroOpQueueStage.
MicroOpQueueStage can be used to simulate a hardware micro-op queue (basically,
a decoupling queue between 'decode' and 'dispatch').  Users can specify a queue
size, as well as a optional MaxIPC (which - in the absence of a "Decoders" stage
- can be used to simulate a different throughput from the decoders).

This stage is added to the default pipeline between the EntryStage and the
DispatchStage only if PipelineOption::MicroOpQueue is different than zero. By
default, llvm-mca sets PipelineOption::MicroOpQueue to the value of hidden flag
-micro-op-queue-size.

Throughput from the decoder can be simulated via another hidden flag named
-decoder-throughput.  That flag allows us to quickly experiment with different
frontend throughputs.  For targets that declare a loop buffer, flag
-decoder-throughput allows users to do multiple runs, each time simulating a
different throughput from the decoders.

This stage can/will be extended in future. For example, we could add a "buffer
full" event to notify bottlenecks caused by backpressure. flag
-decoder-throughput would probably go away if in future we delegate to another
stage (DecoderStage?) the simulation of a (potentially variable) throughput from
the decoders. For now, flag -decoder-throughput is "good enough" to run some
simple experiments.

Differential Revision: https://reviews.llvm.org/D59928

llvm-svn: 357248
2019-03-29 12:15:37 +00:00
..
Atom [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
BdVer2 [X86] AMD Piledriver (BdVer2): fine-tune some latencies 2019-03-28 13:40:34 +00:00
Broadwell [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
BtVer2 [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
Generic [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
Haswell [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
SLM [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
SandyBridge [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
SkylakeClient [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
SkylakeServer [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
Znver1 [X86] Remove the _alt forms of (V)CMP instructions. Use a combination of custom printing and custom parsing to achieve the same result and more 2019-03-18 17:59:59 +00:00
bextr-read-after-ld.s AMD BdVer2 (Piledriver) Initial Scheduler model 2018-10-27 20:46:30 +00:00
bzhi-read-after-ld.s [utils] Ensure that update_mca_test_checks.py writes prefixes in alphabetical order 2018-10-04 14:42:19 +00:00
cpus.s AMD BdVer2 (Piledriver) Initial Scheduler model 2018-10-27 20:46:30 +00:00
default-iterations.s [llvm-mca] Add fields "Total uOps" and "uOps Per Cycle" to the report generated by the SummaryView. 2018-08-29 17:56:39 +00:00
dispatch_width.s [llvm-mca] Add fields "Total uOps" and "uOps Per Cycle" to the report generated by the SummaryView. 2018-08-29 17:56:39 +00:00
fma3-read-after-ld-1.s [utils] Ensure that update_mca_test_checks.py writes prefixes in alphabetical order 2018-10-04 14:42:19 +00:00
fma3-read-after-ld-2.s [utils] Ensure that update_mca_test_checks.py writes prefixes in alphabetical order 2018-10-04 14:42:19 +00:00
in-order-cpu.s Replace unused output filenames with /dev/null in tests 2018-07-02 18:16:44 +00:00
intel-syntax.s [MC] Separate masm integer literal lexer support from inline asm 2018-10-24 20:23:57 +00:00
invalid-assembly-sequence.s [llvm-mca] Make sure not to end the test files with an empty line. 2018-06-04 11:48:46 +00:00
invalid-cpu.s Replace unused output filenames with /dev/null in tests 2018-07-02 18:16:44 +00:00
invalid-empty-file.s Replace unused output filenames with /dev/null in tests 2018-07-02 18:16:44 +00:00
lit.local.cfg
llvm-mca-markers-1.s [llvm-mca] Make sure not to end the test files with an empty line. 2018-06-04 11:48:46 +00:00
llvm-mca-markers-2.s [llvm-mca] Add fields "Total uOps" and "uOps Per Cycle" to the report generated by the SummaryView. 2018-08-29 17:56:39 +00:00
llvm-mca-markers-3.s [llvm-mca] Add fields "Total uOps" and "uOps Per Cycle" to the report generated by the SummaryView. 2018-08-29 17:56:39 +00:00
llvm-mca-markers-4.s [llvm-mca] Add fields "Total uOps" and "uOps Per Cycle" to the report generated by the SummaryView. 2018-08-29 17:56:39 +00:00
llvm-mca-markers-5.s [llvm-mca] Add fields "Total uOps" and "uOps Per Cycle" to the report generated by the SummaryView. 2018-08-29 17:56:39 +00:00
llvm-mca-markers-6.s [llvm-mca] Make sure not to end the test files with an empty line. 2018-06-04 11:48:46 +00:00
llvm-mca-markers-7.s [llvm-mca] Make sure not to end the test files with an empty line. 2018-06-04 11:48:46 +00:00
no-sched-model.s [llvm-mca] Make sure not to end the test files with an empty line. 2018-06-04 11:48:46 +00:00
option-all-stats-1.s [llvm-mca][View] Improved Retire Control Unit Statistics. 2018-11-23 12:12:57 +00:00
option-all-stats-2.s [llvm-mca][View] Improved Retire Control Unit Statistics. 2018-11-23 12:12:57 +00:00
option-all-views-1.s [llvm-mca][View] Improved Retire Control Unit Statistics. 2018-11-23 12:12:57 +00:00
option-all-views-2.s [llvm-mca][View] Improved Retire Control Unit Statistics. 2018-11-23 12:12:57 +00:00
option-no-stats-1.s [llvm-mca] Add fields "Total uOps" and "uOps Per Cycle" to the report generated by the SummaryView. 2018-08-29 17:56:39 +00:00
read-after-ld-1.s AMD BdVer2 (Piledriver) Initial Scheduler model 2018-10-27 20:46:30 +00:00
read-after-ld-2.s [X86] Fix Skylake ReadAfterLd for PADDrm etc. 2018-10-16 09:50:16 +00:00
read-after-ld-3.s [llvm-mca][x86] Add PR36951 ReadAfterLd test case 2018-10-04 16:26:56 +00:00
register-file-statistics.s [NFC][MCA][BdVer2] Add bdver2 runline into register-file-statistics.s test 2018-11-10 10:56:58 +00:00
scheduler-queue-usage.s AMD BdVer2 (Piledriver) Initial Scheduler model 2018-10-27 20:46:30 +00:00
sqrt-rsqrt-rcp-memop.s AMD BdVer2 (Piledriver) Initial Scheduler model 2018-10-27 20:46:30 +00:00
uop-queue.s [MCA] Add an experimental MicroOpQueue stage. 2019-03-29 12:15:37 +00:00
variable-blend-read-after-ld-1.s AMD BdVer2 (Piledriver) Initial Scheduler model 2018-10-27 20:46:30 +00:00
variable-blend-read-after-ld-2.s AMD BdVer2 (Piledriver) Initial Scheduler model 2018-10-27 20:46:30 +00:00