This patch fixes a compile-time regression that was originally
introduced by the fix
for PR64111, in GCC 4.9.3.    One of our user's encountered this problem with a
particular file, where the compile time (on arm) went from 20 seconds
to 150 seconds.

The fix in this patch was suggested by Richard Biener, who wrote the
original fix for
PR64111.  I have verified that this patch fixes the compile time
regression; I have bootstrapped
the compiler with this patch; and I have run the regression testsuite
(no regressions).
Is this ok to commit to ToT?   (I am also working on backports for
gcc-5_branch and gcc-4_9-branch).

-- Caroline Tice
cmt...@google.com

gcc/ChangeLog:

2015-10-23  Caroline Tice  <cmt...@google.com>

        (from Richard Biener)
        * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
        call to iterative_hash_host_wide_int.
Index: gcc/tree.c
===================================================================
--- gcc/tree.c	(revision 229270)
+++ gcc/tree.c	(working copy)
@@ -1364,7 +1364,7 @@
   int i;
 
   for (i = 0; i < TREE_INT_CST_NUNITS (t); i++)
-    code ^= TREE_INT_CST_ELT (t, i);
+    code = iterative_hash_host_wide_int (TREE_INT_CST_ELT(t, i), code);
 
   return code;
 }

Reply via email to