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; }