Probably need to file a bug to track the copyrename2 problem.

David

On Wed, Oct 1, 2014 at 9:59 AM, Teresa Johnson <tejohn...@google.com> wrote:
> This patch removes some asserts my jump threading patch r215739 added.
> An upstream pass (copyrename2) is introducing some bogus profile
> counts, so we can't assert that counts are 0 when there is no profile
> data for the function.
>
> Tested on testcase attached to PR63422. Currently running gcc
> regression tests for x86_64-unknown-linux-gnu. Ok for trunk if that
> passes?
>
> Thanks,
> Teresa
>
> 2014-10-01  Teresa Johnson  <tejohn...@google.com>
>
>         PR middle-end/63422
>         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
>         asserts to handle incoming insanities.
>
> Index: tree-ssa-threadupdate.c
> ===================================================================
> --- tree-ssa-threadupdate.c     (revision 215739)
> +++ tree-ssa-threadupdate.c     (working copy)
> @@ -977,20 +977,14 @@ freqs_to_counts_path (struct redirection_data *rd)
>    edge ein;
>    edge_iterator ei;
>    FOR_EACH_EDGE (ein, ei, e->dest->preds)
> -    {
> -      gcc_assert (!ein->count);
> -      ein->count = EDGE_FREQUENCY (ein);
> -    }
> +    ein->count = EDGE_FREQUENCY (ein);
>
>    for (unsigned int i = 1; i < path->length (); i++)
>      {
>        edge epath = (*path)[i]->e;
> -      gcc_assert (!epath->count);
>        edge esucc;
>        FOR_EACH_EDGE (esucc, ei, epath->src->succs)
> -        {
> -          esucc->count = EDGE_FREQUENCY (esucc);
> -        }
> +        esucc->count = EDGE_FREQUENCY (esucc);
>        epath->src->count = epath->src->frequency;
>      }
>  }
>
>
> --
> Teresa Johnson | Software Engineer | tejohn...@google.com | 408-460-2413

Reply via email to