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

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 36980
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36980&action=edit
gcc6-pr68730.patch

Untested fix for the dominator issue.  The problem is that the stv pass added
by i386 after combiner computes CDI_DOMINATORS, but does not free them, and
various passes in between the combiner and ira just assume dominators are not
computed (e.g. pass_outof_cfg_layout).  So the fix can be either to do what I
wrote in the patch, or use something like:
  bool dom_calculated_here = !dom_info_available_p (CDI_DOMINATORS);

  if (dom_calculated_here)
    calculate_dominance_info (CDI_DOMINATORS);
...
  if (dom_calculated_here)
    free_dominance_info (CDI_DOMINATORS);
in pass_stv::execute, or track down all the passes between combiner and ira
that could break dominators and free_dominance_info (CDI_DOMINATORS) in them. 
Any preferences?

Reply via email to