[Bug debug/91929] missing inline subroutine information in build using sin/cos
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Sep 30 07:12:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91929
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #3)
> PRE is removing the line numbers for some reason.
PRE creates expressions for values out of thin air - there isn't a
"correct" line number it can use.
So we end up with the following after PRE insertion:
pre_inserted = sin (x); // no line number
if (...)
original1 = sin (x);
original2 = sin (x);
at the time we perform CSE on this we could in theory attach line
numbers to pre_inserted when replacing a sin (x) call with pre_inserted.
But we have two - so which one do we choose?
Note the line number program should have picked up a location from the
surrounding code, at least the surrounding function, so the ?? in the
backtraces look like a consumer (perf) issue to me.
Yes, the sin() call may fall out of an inlined function context or even end up
in
the wrong one if you consider inlining two different functions
calling sin on the same value. But again I don't see a good way to
"fix" this.
More information about the Gcc-bugs
mailing list