[llvm-dev] Filter optimization remarks by the hotness of the code region

Adam Nemet via llvm-dev llvm-dev at lists.llvm.org
Wed May 4 11:12:17 PDT 2016

This idea came up a few times recently [1][2] so I’d like start prototyping it.  To summarize, we can emit optimization remarks using the -Rpass* options.  These are currently emitted by optimizations like vectorization[3], unrolling, inlining and since last week loop distribution.

For large programs however this can amount to a lot of diagnostics output to sift through.  Filtering this by the hotness of the region can help to focus the user on performance opportunities that are likely to pay off.

The approach I am thinking of taking is to install a wrapper as the diagnostics handler that will only forward to the original handler if the region of code is considered hot.  This will be installed by a new pass that will use BlockFrequencyInfo to determine the top N hot regions.

This is at very early stage right now.  I would appreciate any feedback.


[1] http://lists.llvm.org/pipermail/llvm-dev/2016-April/098492.html
[2] http://lists.llvm.org/pipermail/cfe-dev/2016-April/048526.html
[3] http://blog.llvm.org/2014/11/loop-vectorization-diagnostics-and.html

More information about the llvm-dev mailing list