Commit 4a62f441 by Jan Hubicka Committed by Richard Biener

re PR lto/85574 (LTO bootstapped binaries differ)

2019-01-03  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/85574
	* tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
	structure.
	(struct ssa_equip_hash_traits): Declare.
	(val_ssa_equiv): Use custom hash traits using operand_equal_p.

From-SVN: r267552
parent 5227609c
2019-01-03 Jan Hubicka <hubicka@ucw.cz>
PR tree-optimization/85574
* tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
structure.
(struct ssa_equip_hash_traits): Declare.
(val_ssa_equiv): Use custom hash traits using operand_equal_p.
2019-01-03 Jakub Jelinek <jakub@redhat.com> 2019-01-03 Jakub Jelinek <jakub@redhat.com>
PR debug/88644 PR debug/88644
......
...@@ -268,21 +268,24 @@ associate_equivalences_with_edges (void) ...@@ -268,21 +268,24 @@ associate_equivalences_with_edges (void)
so with each value we have a list of SSA_NAMEs that have the so with each value we have a list of SSA_NAMEs that have the
same value. */ same value. */
/* Traits for the hash_map to record the value to SSA name equivalences
/* Main structure for recording equivalences into our hash table. */ mapping. */
struct equiv_hash_elt struct ssa_equip_hash_traits : default_hash_traits <tree>
{ {
/* The value/key of this entry. */ static inline hashval_t hash (value_type value)
tree value; { return iterative_hash_expr (value, 0); }
static inline bool equal (value_type existing, value_type candidate)
/* List of SSA_NAMEs which have the same value/key. */ { return operand_equal_p (existing, candidate, 0); }
vec<tree> equivalences;
}; };
typedef hash_map<tree, auto_vec<tree>,
simple_hashmap_traits <ssa_equip_hash_traits,
auto_vec <tree> > > val_ssa_equiv_t;
/* Global hash table implementing a mapping from invariant values /* Global hash table implementing a mapping from invariant values
to a list of SSA_NAMEs which have the same value. We might be to a list of SSA_NAMEs which have the same value. We might be
able to reuse tree-vn for this code. */ able to reuse tree-vn for this code. */
static hash_map<tree, auto_vec<tree> > *val_ssa_equiv; val_ssa_equiv_t *val_ssa_equiv;
static void uncprop_into_successor_phis (basic_block); static void uncprop_into_successor_phis (basic_block);
...@@ -476,7 +479,7 @@ pass_uncprop::execute (function *fun) ...@@ -476,7 +479,7 @@ pass_uncprop::execute (function *fun)
associate_equivalences_with_edges (); associate_equivalences_with_edges ();
/* Create our global data structures. */ /* Create our global data structures. */
val_ssa_equiv = new hash_map<tree, auto_vec<tree> > (1024); val_ssa_equiv = new val_ssa_equiv_t (1024);
/* We're going to do a dominator walk, so ensure that we have /* We're going to do a dominator walk, so ensure that we have
dominance information. */ dominance information. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment