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

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 7 06:19:15 PST 2018


On 6 March 2018 at 18:43, Alexandre Isoard via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> Hello,
>
> 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
> feature?

Hi Alexandre. I can definitely see how it could be useful to track
changes through git commits, and take advantage of your favourite repo
history viewer to see changes. How much of your current implementation
is handled via modifications to LLVM vs an external helper script? For
instance, I might imagine trying to achieve something similar through
a script that parses the output of -print-after-all in order to create
the desired files+commits.

Best,

Alex


More information about the llvm-dev mailing list