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

--- Comment #5 from rguenther at suse dot de <rguenther at suse dot de> ---
On January 9, 2018 6:39:39 PM GMT+01:00, "amker at gcc dot gnu.org"
<gcc-bugzi...@gcc.gnu.org> wrote:
>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83695
>
>--- Comment #4 from amker at gcc dot gnu.org ---
>Given 3-level loop nest: <outer:Loop_1, Loop_2, Loop_3:inner>, the ICE
>happens
>when estimate_numbers_of_iterations called for the outermost Loop_1. 
>The
>function tries to infer niter information from all stmts inside the
>loop.  In
>this case, the scev_info for variables defined in innermost loop is not
>updated
>in previous interchange.
>
>If I deliberately call estimate_numbers_of_iterations for all loops in
>nest
>before actual interchange, the ICE will be gone.  But I am not sure if
>this is
>the only case outdated scev info in inner loops is used.
>
>A full fix would be introducing additional interface cleaning up cached
>scev
>information for variables defined in LOOP from scalar_evolution_info. 
>And call
>the interface for interchanged loops.  Given interchange executed for
>only
>limited times, I guess that won't be too expensive?
>
>I am testing a patch following the latter method.

Just clear all of the cache? Or avoid doing analysis after transform...

Reply via email to