[PATCH] D43951: [RFC] llvm-mca: a static performance analysis tool.

Andrea Di Biagio via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 5 08:17:30 PST 2018


andreadb updated this revision to Diff 137006.
andreadb added a comment.

Patch updated.

- Added documentation in docs/CommandGuide/llvm-mca.rst
- Added a README.txt containing most of the useful documentation originally posted in the RFC, plus an extra "Future work" section.
- Fixed coding style for functions/methods (as requested by Matthias)
- Removed most uses of the 'auto' keyword (as suggested by Matthias)
- Fixed a few spelling mistakes in code comments. Also, added a few extra code comments.
- Added more X86 tests. Created sub-directory for BtVer2 specific tests: dot-product.s , memcpy-like-test.s, load-store-alias.s Each test now checks the timeline report. Tests memcpy-like-test.s and load-store-alias.s specifically test the behavior of flag -noalias.

This patch should also address code review comments from Simon.

@MatzeB 
I checked the impact of this patch on the code size of other llvm tools.
Tested on Release build configuration enabling all the default LLVM targets. Host compiler used to build the tools is the visual studio compiler for vs2015 64-bit.
As expected, the code size increase is small. With all targets enabled, the average code size increase is 0.03%. For example, llc and opt increased in size of a 0.03% when the MC+Tablegen patch was applied. The code size increase is 0.08% in the worst case scenario (llvm-dwarfdump and llvm-rtdyld; however, these two tools are much smaller in size).

Thanks,
Andrea


https://reviews.llvm.org/D43951

Files:
  docs/CommandGuide/llvm-mca.rst
  include/llvm/MC/MCSchedule.h
  test/tools/llvm-mca/ARM/lit.local.cfg
  test/tools/llvm-mca/ARM/simple-test-cortex-a9.s
  test/tools/llvm-mca/X86/BtVer2/dot-product.s
  test/tools/llvm-mca/X86/BtVer2/load-store-alias.s
  test/tools/llvm-mca/X86/BtVer2/memcpy-like-test.s
  test/tools/llvm-mca/X86/BtVer2/simple-test.s
  test/tools/llvm-mca/X86/cpus.s
  test/tools/llvm-mca/X86/default-iterations.s
  test/tools/llvm-mca/X86/dispatch_width.s
  test/tools/llvm-mca/X86/in-order-cpu.s
  test/tools/llvm-mca/X86/invalid-assembly-sequence.s
  test/tools/llvm-mca/X86/invalid-cpu.s
  test/tools/llvm-mca/X86/invalid-empty-file.s
  test/tools/llvm-mca/X86/lit.local.cfg
  test/tools/llvm-mca/X86/no-sched-model.s
  test/tools/llvm-mca/invalid_input_file_name.test
  test/tools/llvm-mca/lit.local.cfg
  tools/LLVMBuild.txt
  tools/llvm-mca/Backend.cpp
  tools/llvm-mca/Backend.h
  tools/llvm-mca/BackendPrinter.cpp
  tools/llvm-mca/BackendPrinter.h
  tools/llvm-mca/BackendStatistics.cpp
  tools/llvm-mca/BackendStatistics.h
  tools/llvm-mca/CMakeLists.txt
  tools/llvm-mca/Dispatch.cpp
  tools/llvm-mca/Dispatch.h
  tools/llvm-mca/HWEventListener.h
  tools/llvm-mca/InstrBuilder.cpp
  tools/llvm-mca/InstrBuilder.h
  tools/llvm-mca/Instruction.cpp
  tools/llvm-mca/Instruction.h
  tools/llvm-mca/LLVMBuild.txt
  tools/llvm-mca/LSUnit.cpp
  tools/llvm-mca/LSUnit.h
  tools/llvm-mca/README.txt
  tools/llvm-mca/ResourcePressureView.cpp
  tools/llvm-mca/ResourcePressureView.h
  tools/llvm-mca/Scheduler.cpp
  tools/llvm-mca/Scheduler.h
  tools/llvm-mca/SourceMgr.h
  tools/llvm-mca/TimelineView.cpp
  tools/llvm-mca/TimelineView.h
  tools/llvm-mca/llvm-mca.cpp
  utils/TableGen/SubtargetEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43951.137006.patch
Type: text/x-patch
Size: 257585 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180305/c7eaf9f2/attachment-0001.bin>


More information about the llvm-commits mailing list