|
|
| Bugzilla Link |
37728 |
| Version |
unspecified |
| OS |
All |
| Depends On |
#36588 #37063 llvm/llvm-bugzilla-archive#37727 #40314 #40456 #43204 #43767 #44225 #49035 #49044 #50454 #50525 #50539 #50540 #50911 #50912 #51880 #51881 #51882 #36654 #37061 #37062 llvm/llvm-bugzilla-archive#37726 #41483 #42636 #43103 #43309 #48790 #49326 #49924 |
| CC |
@bjope,@dstenb,@dwblaikie,@fredriss,@gregbedwell,@jmorse,@jryans,@pogo59,@rgal,@wjristow,@yuanfang-chen |
Extended Description
This is a meta bug for tracking work related to making llvm passes debug info invariant. That means that the output of llvm passes should be the same, modulo debug info metadata & intrinsics, regardless of whether the input IR contains debug info. The motivation for this is that enabling debug info should not degrade optimizations.
There are at least two different approaches for detecting debug invariance bugs:
-
Compile a C program with/without -g, and check that the resulting text sections are identical.
-
Compile some LLVM IR using opt, with/without -debugify-each enabled, and check that the stripped output is identical. The -debugify-each mode applies/removes synthetic debug info to a Module before/after each pass in opt's pipeline.
The second approach might be a bit more flexible, seeing as it's possible to generate LLVM IR from a C program, and to then run a custom pipeline over the IR using opt.
In addition to finding debug invariance bugs, we should think about setting up infrastructure to detect regressions, and about adding utilities to the codebase which might make it easier to write debug info invariant passes.
Extended Description
This is a meta bug for tracking work related to making llvm passes debug info invariant. That means that the output of llvm passes should be the same, modulo debug info metadata & intrinsics, regardless of whether the input IR contains debug info. The motivation for this is that enabling debug info should not degrade optimizations.
There are at least two different approaches for detecting debug invariance bugs:
Compile a C program with/without -g, and check that the resulting text sections are identical.
Compile some LLVM IR using opt, with/without -debugify-each enabled, and check that the stripped output is identical. The -debugify-each mode applies/removes synthetic debug info to a Module before/after each pass in opt's pipeline.
The second approach might be a bit more flexible, seeing as it's possible to generate LLVM IR from a C program, and to then run a custom pipeline over the IR using opt.
In addition to finding debug invariance bugs, we should think about setting up infrastructure to detect regressions, and about adding utilities to the codebase which might make it easier to write debug info invariant passes.