[PATCH] D48225: [llvm-mca][X86] Teach how to identify register writes that implicitly clear the upper portion of a super-register.
Andrea Di Biagio via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 18 07:34:08 PDT 2018
andreadb updated this revision to Diff 151713.
andreadb marked 10 inline comments as done.
andreadb added a comment.
Patch updated.
Addressed review comments.
We now use an APInt instead of a BitVector to keep track of writes that update super-register(s).
A few XOP and AVX512 tests have been added at revision 334945 (http://llvm.org/viewvc/llvm-project?view=revision&revision=334945).
This new patch shows the updated analysis. Now the tool correctly kills the dependencies with the zeroed portions of YMM/ZMM registers. The new IPC for those tests looks much more realistic now. For example, avx512-super-registers-2.s goes from IPC 0.29 to IPC 1.89, with a teoretical maximum IPC of 2.00 (computed as NumInstructions / Block RThroughput = 6 / 3).
Please let me know if okay to commit.
Thanks,
Andrea
https://reviews.llvm.org/D48225
Files:
include/llvm/MC/MCInstrAnalysis.h
lib/MC/MCInstrAnalysis.cpp
lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
test/tools/llvm-mca/X86/BtVer2/clear-super-register-1.s
test/tools/llvm-mca/X86/BtVer2/clear-super-register-2.s
test/tools/llvm-mca/X86/Generic/avx512-super-registers-1.s
test/tools/llvm-mca/X86/Generic/avx512-super-registers-2.s
test/tools/llvm-mca/X86/Generic/avx512-super-registers-3.s
test/tools/llvm-mca/X86/Generic/xop-super-registers-1.s
test/tools/llvm-mca/X86/Generic/xop-super-registers-2.s
tools/llvm-mca/InstrBuilder.cpp
tools/llvm-mca/InstrBuilder.h
tools/llvm-mca/Instruction.h
tools/llvm-mca/RegisterFile.cpp
tools/llvm-mca/llvm-mca.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48225.151713.patch
Type: text/x-patch
Size: 50468 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180618/59ddc061/attachment.bin>
More information about the llvm-commits
mailing list