[llvm-dev] Commit module to Git after each Pass

Alexandre Isoard via llvm-dev llvm-dev at lists.llvm.org
Tue Mar 6 10:43:32 PST 2018


I had a stupid idea recently that turned out not so stupid after all. I
wanted to be able to "see" an entire pass pipeline in action to find
unnecessary transformations and/or missed opportunities and generally
improve the debug-ability of LLVM.

So as the title suggest, I implemented an equivalent of "-print-after-all"
but instead of printing into stdout I dump into a file that get commit into
a temporary git. There are some quirks with it but it's working and is
actually awesome. For example, at first sight, I see multiple time lcssa
and instcombine cancelling each other's work.

Of course, that has a big impact on compile time when enabled, but that's
still practical (git being quite good at its job) when debugging.

There are improvement I can make, but would you guys be interested in such

*Alexandre Isoard*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180306/a7bd1e89/attachment.html>

More information about the llvm-dev mailing list