tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
2008-01-11 Richard Guenther <rguenther@suse.de> * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode. (struct vn_unary_op_s): Likewise. (vn_reference_insert): Free old reference on hash collision. From-SVN: r131462
This commit is contained in:
parent
245af66d33
commit
8d0eca24fa
2 changed files with 29 additions and 19 deletions
|
@ -1,3 +1,9 @@
|
|||
2008-01-11 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
|
||||
(struct vn_unary_op_s): Likewise.
|
||||
(vn_reference_insert): Free old reference on hash collision.
|
||||
|
||||
2008-01-10 Raksit Ashok <raksit@google.com>
|
||||
|
||||
PR rtl-optimization/27971
|
||||
|
|
|
@ -125,10 +125,10 @@ typedef struct vn_tables_s
|
|||
typedef struct vn_binary_op_s
|
||||
{
|
||||
enum tree_code opcode;
|
||||
hashval_t hashcode;
|
||||
tree type;
|
||||
tree op0;
|
||||
tree op1;
|
||||
hashval_t hashcode;
|
||||
tree result;
|
||||
} *vn_binary_op_t;
|
||||
typedef const struct vn_binary_op_s *const_vn_binary_op_t;
|
||||
|
@ -140,9 +140,9 @@ typedef const struct vn_binary_op_s *const_vn_binary_op_t;
|
|||
typedef struct vn_unary_op_s
|
||||
{
|
||||
enum tree_code opcode;
|
||||
hashval_t hashcode;
|
||||
tree type;
|
||||
tree op0;
|
||||
hashval_t hashcode;
|
||||
tree result;
|
||||
} *vn_unary_op_t;
|
||||
typedef const struct vn_unary_op_s *const_vn_unary_op_t;
|
||||
|
@ -280,6 +280,24 @@ VN_INFO_GET (tree name)
|
|||
}
|
||||
|
||||
|
||||
/* Free a phi operation structure VP. */
|
||||
|
||||
static void
|
||||
free_phi (void *vp)
|
||||
{
|
||||
vn_phi_t phi = vp;
|
||||
VEC_free (tree, heap, phi->phiargs);
|
||||
}
|
||||
|
||||
/* Free a reference operation structure VP. */
|
||||
|
||||
static void
|
||||
free_reference (void *vp)
|
||||
{
|
||||
vn_reference_t vr = vp;
|
||||
VEC_free (vn_reference_op_s, heap, vr->operands);
|
||||
}
|
||||
|
||||
/* Compare two reference operands P1 and P2 for equality. return true if
|
||||
they are equal, and false otherwise. */
|
||||
|
||||
|
@ -691,6 +709,9 @@ vn_reference_insert (tree op, tree result, VEC (tree, gc) *vuses)
|
|||
the other lookup functions, you cannot gcc_assert (!*slot)
|
||||
here. */
|
||||
|
||||
/* But free the old slot in case of a collision. */
|
||||
if (*slot)
|
||||
free_reference (*slot);
|
||||
|
||||
*slot = vr1;
|
||||
}
|
||||
|
@ -1927,23 +1948,6 @@ DFS (tree name)
|
|||
return true;
|
||||
}
|
||||
|
||||
static void
|
||||
free_phi (void *vp)
|
||||
{
|
||||
vn_phi_t phi = vp;
|
||||
VEC_free (tree, heap, phi->phiargs);
|
||||
}
|
||||
|
||||
|
||||
/* Free a reference operation structure VP. */
|
||||
|
||||
static void
|
||||
free_reference (void *vp)
|
||||
{
|
||||
vn_reference_t vr = vp;
|
||||
VEC_free (vn_reference_op_s, heap, vr->operands);
|
||||
}
|
||||
|
||||
/* Allocate a value number table. */
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Reference in a new issue