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

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.
10 Comments