My proposal was accepted!
For the next few days it's the community bonding period. I will take advantage of this time to let the community know about my project and it's goals, as well as get a head start on the coding period.
Starting the project
The first step to improving the debugging of optimized code is to measure
where we lose Debug information.
Verdant has already created the tool to do that. It's the debugify mode.
debugify is a
ModulePass and works like that.
It needs to be refactored into a
FunctionPass while keeping the
same underlying logic. That way it will be managed from the
Next the opt tool should have a custom
PassManager that injects the new
debugify before a pass and then the new check-debugify after it. This will
be a new mode called debugify-each. It will basically gather DI loss from
every pass in the pipeline.
ModulePass will still be available but it will be a wrapper
OK, I got the data. Now what?
The resulting DI loss occurrences will be stored into some kind of human readable data serialization format, like JSON or YAML.
More on that on a later post.