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

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so the main issue is that when we parallelize a loop without stores we
insert stores and thus would require a loop PHI for the virtual operand plus
LC SSA updates.

We eventually end up in gen_parallel_loop at

      /* We assume that the loop usually iterates a lot.  */
      loop_version (loop, many_iterations_cond, NULL,
                    profile_probability::likely (),
                    profile_probability::unlikely (),
                    profile_probability::likely (),
                    profile_probability::unlikely (), true);
      update_ssa (TODO_update_ssa_no_phi);

which performs the update but doesn't insert PHIs - the above assumed
that we'd have no SSA update pending before the call to loop_version.

separate_decls_in_region is what creates the stores (with no virtual
operands, thus triggering renaming and the need for a LC PHI).

I'm going to work around.

Reply via email to