diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2019-01-03 13:23:27 +0100 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-01-03 12:23:27 +0000 |
commit | 4a62f44193ab95288311d162c45dbd31a7930281 (patch) | |
tree | dd8b2512a93699bd03a1ba546488b7b898d2365f /gcc/tree-ssa-uncprop.c | |
parent | 5227609c33e649e337c44653039fff9aacc84e2f (diff) | |
download | gcc-4a62f44193ab95288311d162c45dbd31a7930281.zip gcc-4a62f44193ab95288311d162c45dbd31a7930281.tar.gz gcc-4a62f44193ab95288311d162c45dbd31a7930281.tar.bz2 |
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
Diffstat (limited to 'gcc/tree-ssa-uncprop.c')
-rw-r--r-- | gcc/tree-ssa-uncprop.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/gcc/tree-ssa-uncprop.c b/gcc/tree-ssa-uncprop.c index a6b7950..b9b05ed 100644 --- a/gcc/tree-ssa-uncprop.c +++ b/gcc/tree-ssa-uncprop.c @@ -268,21 +268,24 @@ associate_equivalences_with_edges (void) so with each value we have a list of SSA_NAMEs that have the same value. */ - -/* Main structure for recording equivalences into our hash table. */ -struct equiv_hash_elt +/* Traits for the hash_map to record the value to SSA name equivalences + mapping. */ +struct ssa_equip_hash_traits : default_hash_traits <tree> { - /* The value/key of this entry. */ - tree value; - - /* List of SSA_NAMEs which have the same value/key. */ - vec<tree> equivalences; + static inline hashval_t hash (value_type value) + { return iterative_hash_expr (value, 0); } + static inline bool equal (value_type existing, value_type candidate) + { return operand_equal_p (existing, candidate, 0); } }; +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 to a list of SSA_NAMEs which have the same value. We might be 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); @@ -476,7 +479,7 @@ pass_uncprop::execute (function *fun) associate_equivalences_with_edges (); /* 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 dominance information. */ |