On 11/25/07 3:43 PM, Mark Mitchell wrote:

My suggestion (not as a GCC SC member or GCC RM, but just as a fellow
GCC developer with an interest in improving the compiler in the same way
that you're trying to do) is that you stop writing code and start
writing a paper about what you're trying to do.

Ignore the implementation.  Describe the problem in detail.  Narrow its
scope if necessary.  Describe the success criteria in detail.  Ideally,
the success criteria are mechanically checkable properties: i.e., given
a C program as input, and optimized code + debug information as output,
it should be possible to algorithmically prove whether the output is
correct.

Yes, please. I would very much like to see an abstract design document on what you are trying to accomplish. I have been trying to follow this thread but I've gotten lost. It's full of implementation details, rhetoric and high-level discussion.

I would like to see exactly what Mark is asking for. Perhaps a presentation in next year's Summit? I don't think I understand the goal of the project. "Correct debugging info" means little, particularly if you say that it's not debuggers that you are thinking about.

It's certainly worrisome that your implementation seems to be intrusive to the point of brittleness. Will every new optimization need to think about debug information from scratch and refrain from doing certain transformations?

In my simplistic view of this problem, I've always had the idea that -O0 -g means "full debugging bliss", -O1 -g means "tolerable debugging" (symbols shouldn't disappear, for instance, though they do now) and -O2 -g means "you can probably know what line+function you're executing".

But you seem to be addressing other problems. And it even seems to me that you want debugging information that is capable of deconstructing arbitrary transformations done by the optimizers. But I think I'm just lost in this thread, so a high-level design document would be perfect to expose your ideas.


Diego.

Reply via email to