[llvm-dev] Improve LLVM IR dumps

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[llvm-dev] Improve LLVM IR dumps

Muhui Jiang via llvm-dev
Hi all,

I have been thinking about an improvement to -print-(before/after)-all
feature. In some situations you want to check how code changes between
different passes. This is already available in GCC using
-fdump-tree-cfg. It would be great to have a similar way of dumping code
in LLVM, possibly with Godbolt integration that makes it able to watch
the differences.

The way how it is available now is nice, but quite inconvenient, so the
idea is to:

1) Dump IR from each pass to separate file.
2) Make dumps complete. For now, dumps from some passes are partial, e.
g. they contain only loop body.
3) Integrate with Godbolt.

Why to do this?
It helps to debug optimizations and other passes that change IR. It also
makes compiler easier to be understood.

Your comments are greatly appreciated. What do you think about utility
of the improvement?

Cheers,
Damian
_______________________________________________
LLVM Developers mailing list
[hidden email]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
Reply | Threaded
Open this post in threaded view
|

Re: [llvm-dev] Improve LLVM IR dumps

Muhui Jiang via llvm-dev
On 07/03/2018 03:02 AM, Damian Bodnar via llvm-dev wrote:

> Hi all,
>
> I have been thinking about an improvement to -print-(before/after)-all
> feature. In some situations you want to check how code changes between
> different passes. This is already available in GCC using
> -fdump-tree-cfg. It would be great to have a similar way of dumping
> code in LLVM, possibly with Godbolt integration that makes it able to
> watch the differences.
>
> The way how it is available now is nice, but quite inconvenient, so
> the idea is to:
>
> 1) Dump IR from each pass to separate file.
> 2) Make dumps complete. For now, dumps from some passes are partial,
> e. g. they contain only loop body.
Already available with -print-module-scope (and -print-after-all).

> 3) Integrate with Godbolt.
>
> Why to do this?
> It helps to debug optimizations and other passes that change IR. It
> also makes compiler easier to be understood.
>
> Your comments are greatly appreciated. What do you think about utility
> of the improvement?
There was a relatively recent patch by Alexandre Isoard on
-git-commit-after-all (not accepted/integrated):
   https://reviews.llvm.org/D44244

As was discussed earlier on the list, implementation for it should be
closer to what you describe here.
However I still sometimes find this patch rather useful as it is.

regards,
   Fedor.

_______________________________________________
LLVM Developers mailing list
[hidden email]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev