This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Enable SSA at -O0
Jan Hubicka wrote:
Well, I don't know either... I didn't run into debug info quality
problems during development and I tried to use this as build compiler.
thats a good sign anyway!
right now -O0 is the only saving grace we have, and as much as I want to
see the SSA path at -O0, I'd also hate for us to end up with numerous
cases where we no longer have some basic info.
I've disabled TERing across statements, just within one statement or
putting statements with no debug info into statement with debug info.
Also I re-coalesce all user variables into single variable. So in
theory we should do no worse then we did before tree-SSA as trees fed
into expander are now only closer to pre-tree-SSA form.
right. And as long as we don't do any SSA optimizations which move code
around, we should never have to worry about overlapping live ranges
which play havoc with debug output. in theory, it should be OK, but the
specter of compiler temps without debug info finding their way in where
they shouldn't be lurks at the window... we certainly have to be
careful what ssa passes are run.
Bootstrapped/regtested i686-linux. I am testing x86_64-linux and
PPC-linux but both
passed with earlier version of the patch.
I presume this is being targeted for 4.4?
I guess it depends on overall consensus. I started with this patch as
simple hack as Richard needed it for the lowering passes. It turned out
to need a lot of fixing here and there and enabling unit-at-a-time by
default, so it ended up being more work. If for nothing, this patch was
useful to fix a lot of latent or semi-latent problems ;)) and I think
the results are not discougrating.
Seeing it from the other POV, this patch would enforce us fixing debug
info quality issues in SSA that should improve debug quality when
optimizing.
Yeah. I'm currently working on a mechanism to provide a quantitative
comparison of the 'user quality' of debug info issued between different
runs of the compiler. It should also identify what isn't correct and
where. At least that is the plan :-) This would be another useful
thing to run through it, -O0 with SSA and -O0 without SSA and see how
similar it is. And also as a test of the comparator mechanism itself.
We might then be able to detect that we have a problem we need to look
at :-)
Andrew