This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/71351] [7/8 Regression] ICE: Segmentation fault (graphite)


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

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
I _think_ that the proper fix is to _not_ code-gen additional loop guards
because we can't possibly get the PHIs correct there.  Iff a loop needs a guard
then it will be present before.  So the only case we'd need an extra guard is
when the loop didn't have do { } while () style but we reject that case in
can_represent_loop_1 because there we require that number_of_latch_executions
is scev-analyzable.  But SCEV doesn't handle niters like

n_6(D) > 0 ? (unsigned int) n_6(D) + 4294967295 : 0

that is, we effectively reject ->may_be_zero.

Testing patch to remove the additional conditions (it passed SPEC CPU 2006 w/o
any issues in a train run).

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]