On 08/03/14 08:42, Richard Sandiford wrote:
const_rtx_hash_1 had code to hash all elements of a CONST_VECTOR,
but const_rtx_hash also hashes all subrtxes, so we'd end up hashing
the same thing twice. This looked unintentional so I just removed the
CONST_VECTOR case. If instead it was a deliberate decision then I think
it deserves a comment.
gcc/
* varasm.c: Include rtl-iter.h.
(const_rtx_hash_1): Take a const_rtx rather than an rtx *.
Remove the pointer to the cumulative hashval_t and just return
the hash for this rtx instead. Remove recursive CONST_VECTOR case.
(const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
Accumulate the hashval_ts here instead of const_rtx_hash_1.
This is fine. Though I wonder if it's going to conflict with Andi's
work on inchash. If so, consider adjustments to handle Andi's changes
pre-approved. Just post the final patch for archival purposes if you
need to change it.
Thanks,
jeff