On 08/11/2016 02:34 PM, David Malcolm wrote:
I sometimes find myself scouring assembler output from the compiler
and trying to figure out which instructions correspond to which
lines of source code; I believe this is a common activity for some
end-users.
The following patch adds a new -fasm-show-source option, which
emits comments into the generated asm showing the pertinent
line of source code, whenever it changes. It uses the same logic
as debug_hooks->source_line for tracking this (for handling
line-based breakpoints).
An example can be seen in the invoke.texi part of the patch. As
noted there, it's aimed at end-users, rather than gcc developers.
The example shows a relatively short function; the option is
likely to be much more useful for longer functions.
I think it would further improve usability if this option were enabled
by default when the final output is .s (either via -S, or by "-o foo.s").
Ideas on how to implement that (in the driver) would be welcome - I
started looking at the spec-handling code, but thought I'd post the
idea here first, before diving in too deeply.
Successfully bootstrapped®rtested on x86_64-pc-linux-gnu; adds
2 PASS results to gcc.sum.
Thoughts? OK for trunk as-is?
Why not extend the existing -fverbose-asm to do this? E.g.
-fverbose-asm=source, or something like that. Otherwise you need to
cross-reference the documentation for the two options and explain how
they interact (or don't interact, as the case may be).
-Sandra