This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/81090] [8 Regression] [graphite] ICE in loop_preheader_edge
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 16 Jun 2017 09:28:56 +0000
- Subject: [Bug tree-optimization/81090] [8 Regression] [graphite] ICE in loop_preheader_edge
- Auto-submitted: auto-generated
- References: <bug-81090-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81090
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
So amending scev_reset to do free_numbers_of_iterations_estimates causes issues
with complete peeling which uses gimple_duplicate_loop_to_header_edge which
calls scev_reset (peeling invalidates cached CHRECs for the loop header PHIs
and derived SSA names) but then using ->bounds to mark paths in the loop copies
as gcc_unreachable () (remove_exits_and_undefined_stmts). That looks fishy
somewhat, also because we defer this operation when processing adjacent loops
which will then eventually clear estimates before the 2nd adjacent loop is
processed (that might still work in the end if we only reset estimates for
a single loop at a time or estimates are computed on-demand again when using
the correct API). Even more ugly so we ggc_free bounds ...