[Bug tree-optimization/104931] [9/10/11 Regression] wrong-code with number_of_iterations_lt_to_ne

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 17 13:53:09 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104931

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 52646
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52646&action=edit
ivcanon dump from the GIMPLE testcase (without bug)

The difference is that with LTO we have expanded expressions to

Analyzing # of iterations of loop 1
  exit condition [(struct TValue *) (_2 + 4294967272) + 12, + ,
24](no_overflow) < _2 + 4294967272

while with the GIMPLE testcase we immediately get to

Statement (exit)if (from_26 < to_27)
 is executed at most 0 (bounded by 0) + 1 times in loop 1.
...
Loop 1 iterates 0 times.


Note the GIMPLE FE doesn't yet support parsing CLOBBER stmts (but I'm quite
sure this doesn't matter here) and for the loops() support you need to
commit a pending patch.


More information about the Gcc-bugs mailing list