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