http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58492

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
With -fipa-pta at t.c.054t.copyrename2 we have

f.constprop ()
{
  <bb 2>:
  f.constprop ();
  return;

}

f (int p, short int q)
{
  <bb 2>:
  f.constprop ();
  return;

}

but without -fipa-pta we get

f (int p, short int q)
{
  <bb 2>:
  f.constprop ();

}

appearantly

  /* SIPLE IPA passes do not handle callgraphs with IPA transforms in it.
     Apply all trnasforms first.  */
  if (pass->type == SIMPLE_IPA_PASS)
    {
      bool applied = false;
      do_per_function (apply_ipa_transforms, (void *)&applied);
      if (applied)
        symtab_remove_unreachable_nodes (true, dump_file);
      /* Restore current_pass.  */
      current_pass = pass;
    }

breaks things because we instantiate the clone before executing late
local-pure-const for f.constprop () this way and thus miss the state
change in the caller and the fixup-cfg required by it.  In 4.8 we had
as first pass in all_passes a pass_fixup_cfg but appearantly I removed
that(?) ...

Mine.

Reply via email to