llvm-project/llvm/test/tools/llvm-exegesis/X86
Roman Lebedev 6030fe01f4
[llvm-exegesis] Exploring X86::OperandType::OPERAND_COND_CODE
Summary:
Currently, we only have nice exploration for LEA instruction,
while for the rest, we rely on `randomizeUnsetVariables()`
to sometimes generate something interesting.
While that works, it isn't very reliable in coverage :)

Here, i'm making an assumption that while we may want to explore
multi-instruction configs, we are most interested in the
characteristics of the main instruction we were asked about.

Which we can do, by taking the existing `randomizeMCOperand()`,
and turning it on it's head - instead of relying on it to randomly fill
one of the interesting values, let's pregenerate all the possible interesting
values for the variable, and then generate as much `InstructionTemplate`
combinations of these possible values for variables as needed/possible.

Of course, that requires invasive changes to no longer pass just the
naked `Instruction`, but sometimes partially filled `InstructionTemplate`.

As it can be seen from the test, this allows us to explore
`X86::OperandType::OPERAND_COND_CODE` for instructions
that take such an operand.
I'm hoping this will greatly simplify exploration.

Reviewers: courbet, gchatelet

Reviewed By: gchatelet

Subscribers: orodley, mgorny, sdardis, tschuett, jrtc27, atanasyan, mstojanovic, andreadb, RKSimon, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D74156
2020-02-12 21:33:52 +03:00
..
analysis-cluster-stabilization-config.test [llvm-exegesis] Finish plumbing the `Config` field. 2019-10-08 09:06:48 +00:00
analysis-cluster-stabilization.test
analysis-clustering-algorithms.test
analysis-epsilons.test
analysis-inconsistencies-uops-backwards.test
analysis-inconsistencies-uops.test
analysis-naive-cluster-stabilization.test
analysis-naive-clusterization.test
analysis-noise.test [llvm-exegesis] Show noise cluster in analysis output. 2019-10-11 11:33:18 +00:00
analysis-same-cluster-for-ops-in-different-sched-clusters.test
analysis-uops-backwards.test
analysis-uops-variant.test
analysis-uops.test
inverse_throughput-by-opcode-name.s
latency-CMOV32rr.s
latency-LEA64_32r.s [llvm-exegesis] Fix support for LEA64_32r. 2020-01-21 13:58:23 +01:00
latency-LEA64r.s [llvm-exegesis] Explore LEA addressing modes. 2019-10-09 08:49:13 +00:00
latency-SBB8rr.s
latency-SETCCr-cond-codes-sweep.s [llvm-exegesis] Exploring X86::OperandType::OPERAND_COND_CODE 2020-02-12 21:33:52 +03:00
latency-SQRTSSr.s [llvm-exegesis] Fix 44b9942898. 2019-12-02 16:13:27 +01:00
latency-by-opcode-name.s
lit.local.cfg
max-configs.test [llvm-exegesis] Add options to SnippetGenerator. 2019-10-08 14:30:24 +00:00
uops-ADD32mi8.s
uops-ADD32mr.s
uops-ADD32rm.s
uops-ADD_F32m.s [X86] Add initialization of FPCW in llvm-exegesis 2019-12-02 20:18:35 +08:00
uops-BEXTR32rm.s
uops-BSF16rm.s
uops-BTR64mr.s
uops-CMOV16rm-noreg.s
uops-LEA64r.s [llvm-exegesis] Explore LEA addressing modes. 2019-10-09 08:49:13 +00:00
uops-VFMADDSS4rm.s [X86] Model MXCSR for AVX instructions other than AVX512 2019-12-03 08:53:47 +08:00
uops-XCHG64rr.s
uops-by-opcode-name.s