mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-25 19:11:21 +08:00
gimple.c (type_pair_hash, [...]): Arrange type pairs to be UID ordered.
* gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair): Arrange type pairs to be UID ordered. (gimple_lookup_type_leader): Make inline. From-SVN: r173560
This commit is contained in:
parent
2cf320a89d
commit
4fc07af967
@ -1,3 +1,9 @@
|
||||
2011-05-08 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
|
||||
Arrange type pairs to be UID ordered.
|
||||
(gimple_lookup_type_leader): Make inline.
|
||||
|
||||
2011-05-09 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR target/48897
|
||||
|
24
gcc/gimple.c
24
gcc/gimple.c
@ -3240,8 +3240,7 @@ type_pair_hash (const void *p)
|
||||
const struct type_pair_d *pair = (const struct type_pair_d *) p;
|
||||
hashval_t val1 = pair->uid1;
|
||||
hashval_t val2 = pair->uid2;
|
||||
return (iterative_hash_hashval_t (val2, val1)
|
||||
^ iterative_hash_hashval_t (val1, val2));
|
||||
return iterative_hash_hashval_t (val1, val2);
|
||||
}
|
||||
|
||||
/* Compare two type pairs pointed-to by P1 and P2. */
|
||||
@ -3251,8 +3250,7 @@ type_pair_eq (const void *p1, const void *p2)
|
||||
{
|
||||
const struct type_pair_d *pair1 = (const struct type_pair_d *) p1;
|
||||
const struct type_pair_d *pair2 = (const struct type_pair_d *) p2;
|
||||
return ((pair1->uid1 == pair2->uid1 && pair1->uid2 == pair2->uid2)
|
||||
|| (pair1->uid1 == pair2->uid2 && pair1->uid2 == pair2->uid1));
|
||||
return (pair1->uid1 == pair2->uid1 && pair1->uid2 == pair2->uid2);
|
||||
}
|
||||
|
||||
/* Lookup the pair of types T1 and T2 in *VISITED_P. Insert a new
|
||||
@ -3271,8 +3269,16 @@ lookup_type_pair (tree t1, tree t2, htab_t *visited_p, struct obstack *ob_p)
|
||||
gcc_obstack_init (ob_p);
|
||||
}
|
||||
|
||||
pair.uid1 = TYPE_UID (t1);
|
||||
pair.uid2 = TYPE_UID (t2);
|
||||
if (TYPE_UID (t1) < TYPE_UID (t2))
|
||||
{
|
||||
pair.uid1 = TYPE_UID (t1);
|
||||
pair.uid2 = TYPE_UID (t2);
|
||||
}
|
||||
else
|
||||
{
|
||||
pair.uid1 = TYPE_UID (t2);
|
||||
pair.uid2 = TYPE_UID (t1);
|
||||
}
|
||||
slot = htab_find_slot (*visited_p, &pair, INSERT);
|
||||
|
||||
if (*slot)
|
||||
@ -3280,8 +3286,8 @@ lookup_type_pair (tree t1, tree t2, htab_t *visited_p, struct obstack *ob_p)
|
||||
else
|
||||
{
|
||||
p = XOBNEW (ob_p, struct type_pair_d);
|
||||
p->uid1 = TYPE_UID (t1);
|
||||
p->uid2 = TYPE_UID (t2);
|
||||
p->uid1 = pair.uid1;
|
||||
p->uid2 = pair.uid2;
|
||||
p->same_p[0] = -2;
|
||||
p->same_p[1] = -2;
|
||||
*slot = (void *) p;
|
||||
@ -3324,7 +3330,7 @@ static GTY((deletable, length("GIMPLE_TYPE_LEADER_SIZE")))
|
||||
/* Lookup an existing leader for T and return it or NULL_TREE, if
|
||||
there is none in the cache. */
|
||||
|
||||
static tree
|
||||
static inline tree
|
||||
gimple_lookup_type_leader (tree t)
|
||||
{
|
||||
gimple_type_leader_entry *leader;
|
||||
|
Loading…
x
Reference in New Issue
Block a user