LLVM-MCA Will Analyze Your Machine Code, Help Analyze Potential Performance Issues

Written by Michael Larabel in LLVM on 20 March 2018 at 09:00 AM EDT. 10 Comments
LLVM
One of the tools merged to LLVM SVN/Git earlier this month for the LLVM 7.0 cycle is LLVM-MCA. The LLVM-MCA tool is a machine code analyzer that estimates how the given machine code would perform on a specific CPU and attempt to report possible bottlenecks.

The LLVM-MCA analysis tool uses information already used within LLVM about a given CPU family's scheduler model and other information to try to statically measure how the machine code would carry out on a particular CPU, even going as far as estimating the instructions per cycle and possible resource pressure.

The MCA tool looks at throughput and resource consumption of the supplied machine code and tries to diagnose possible performance issues. LLVM-MCA can analyze against an arbitrary CPU using the -march/-mcpu options just as you would use with Clang.

The LLVM Machine Code Analyzer was merged earlier this month and will be part of the LLVM 7.0 release due later in 2018. Since its initial merging, LLVM-MCA has seen routine activity to further enhance its capabilities.

Certainly an interesting tool for any developers wishing to analyze the implications of their machine code on different CPU microarchitectures. It will certainly be interesting to see where LLVM-MCA heads in the weeks/months ahead.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week