[PATCH] D65948: [MCA] Add flag -show-encoding to llvm-mca.
Andrea Di Biagio via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 8 06:28:31 PDT 2019
andreadb created this revision.
andreadb added reviewers: RKSimon, lebedev.ri, courbet, gchatelet, ondrasej.
Herald added subscribers: gbedwell, tschuett, mgorny.
Flag `-show-encoding` enables the printing of instruction encodings as part of the the instruction info view.
Example (with flags `-mtriple=x86_64-- -mcpu=btver2`):
Instruction Info:
[1]: #uOps
[2]: Latency
[3]: RThroughput
[4]: MayLoad
[5]: MayStore
[6]: HasSideEffects (U)
[7]: Encoding Size
[1] [2] [3] [4] [5] [6] [7] Encodings: Instructions:
1 2 1.00 4 c5 f0 59 d0 vmulps %xmm0, %xmm1, %xmm2
1 4 1.00 4 c5 eb 7c da vhaddps %xmm2, %xmm2, %xmm3
1 4 1.00 4 c5 e3 7c e3 vhaddps %xmm3, %xmm3, %xmm4
In this example, column `Encoding Size` is the size in bytes of the instruction encoding.
Column `Encodings` reports the actual instruction encodings as byte sequences in hex (objdump style).
The computation of encodings is done by a utility class named mca::CodeEmitter.
In future, I plan to expose the CodeEmitter to the instruction builder, so that information about instruction encoding sizes can be used by the simulator. That would be a first step towards simulating the throughput from the decoders in the hardware frontend.
https://reviews.llvm.org/D65948
Files:
include/llvm/MCA/CodeEmitter.h
lib/MCA/CMakeLists.txt
lib/MCA/CodeEmitter.cpp
test/tools/llvm-mca/X86/show-encoding.s
tools/llvm-mca/Views/InstructionInfoView.cpp
tools/llvm-mca/Views/InstructionInfoView.h
tools/llvm-mca/llvm-mca.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65948.214134.patch
Type: text/x-patch
Size: 16464 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190808/979181d9/attachment.bin>
More information about the llvm-commits
mailing list