[Bug tree-optimization/53128] [4.8 Regression] Compiler produces infinite loop on regular O2
manu at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu May 3 16:03:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53128
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |manu at gcc dot gnu.org
--- Comment #5 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-05-03 16:02:56 UTC ---
(In reply to comment #4)
> Isn't it too aggressive from user perspective to perform such transformation
> even without warning? Especially for the case when that "wrong" read is not
> used later.
> Sure it is dangerous anyway to make such access but at he same time it seems
> this could affect lot of existing code...
Igor, I guess the compiler only sees something like:
x = 14
if (x < 13) do_A(); else do_B();
and transform it into:
do_A();
It doesn't see that an infinite loop is generated. Now, whether there could be
an optimization pass that detects infinite loops, and warns for them, that I am
not sure, but surely it would be a nice thing to have. If someone contributed a
nice implementation, I think it will be accepted. Unfortunately, I don't think
it is in the TODO list of any current contributor.
More information about the Gcc-bugs
mailing list