Community Bonding

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. Currently 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 FunctionPassManager.

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.

Debugify as ModulePass will still be available but it will be a wrapper around the FunctionPass one.

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.