varasm.c: Include rtl-iter.h.
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. From-SVN: r214665
This commit is contained in:
parent
3b4459f903
commit
11315a95c7
@ -1,3 +1,12 @@
|
||||
2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* var-tracking.c (add_uses): Take an rtx rather than an rtx *.
|
||||
|
27
gcc/varasm.c
27
gcc/varasm.c
@ -53,6 +53,7 @@ along with GCC; see the file COPYING3. If not see
|
||||
#include "hash-set.h"
|
||||
#include "asan.h"
|
||||
#include "basic-block.h"
|
||||
#include "rtl-iter.h"
|
||||
|
||||
#ifdef XCOFF_DEBUGGING_INFO
|
||||
#include "xcoffout.h" /* Needed for external data
|
||||
@ -3485,19 +3486,17 @@ const_desc_rtx_eq (const void *a, const void *b)
|
||||
return rtx_equal_p (x->constant, y->constant);
|
||||
}
|
||||
|
||||
/* This is the worker function for const_rtx_hash, called via for_each_rtx. */
|
||||
/* Hash one component of a constant. */
|
||||
|
||||
static int
|
||||
const_rtx_hash_1 (rtx *xp, void *data)
|
||||
static hashval_t
|
||||
const_rtx_hash_1 (const_rtx x)
|
||||
{
|
||||
unsigned HOST_WIDE_INT hwi;
|
||||
enum machine_mode mode;
|
||||
enum rtx_code code;
|
||||
hashval_t h, *hp;
|
||||
rtx x;
|
||||
hashval_t h;
|
||||
int i;
|
||||
|
||||
x = *xp;
|
||||
code = GET_CODE (x);
|
||||
mode = GET_MODE (x);
|
||||
h = (hashval_t) code * 1048573 + mode;
|
||||
@ -3543,14 +3542,6 @@ const_rtx_hash_1 (rtx *xp, void *data)
|
||||
h ^= fixed_hash (CONST_FIXED_VALUE (x));
|
||||
break;
|
||||
|
||||
case CONST_VECTOR:
|
||||
{
|
||||
int i;
|
||||
for (i = XVECLEN (x, 0); i-- > 0; )
|
||||
h = h * 251 + const_rtx_hash_1 (&XVECEXP (x, 0, i), data);
|
||||
}
|
||||
break;
|
||||
|
||||
case SYMBOL_REF:
|
||||
h ^= htab_hash_string (XSTR (x, 0));
|
||||
break;
|
||||
@ -3568,9 +3559,7 @@ const_rtx_hash_1 (rtx *xp, void *data)
|
||||
break;
|
||||
}
|
||||
|
||||
hp = (hashval_t *) data;
|
||||
*hp = *hp * 509 + h;
|
||||
return 0;
|
||||
return h;
|
||||
}
|
||||
|
||||
/* Compute a hash value for X, which should be a constant. */
|
||||
@ -3579,7 +3568,9 @@ static hashval_t
|
||||
const_rtx_hash (rtx x)
|
||||
{
|
||||
hashval_t h = 0;
|
||||
for_each_rtx (&x, const_rtx_hash_1, &h);
|
||||
subrtx_iterator::array_type array;
|
||||
FOR_EACH_SUBRTX (iter, array, x, ALL)
|
||||
h = h * 509 + const_rtx_hash_1 (*iter);
|
||||
return h;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user