https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63677
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- Author: rguenth Date: Thu Nov 20 08:40:52 2014 New Revision: 217827 URL: https://gcc.gnu.org/viewcvs?rev=217827&root=gcc&view=rev Log: 2014-11-20 Richard Biener <rguent...@suse.de> PR tree-optimization/63677 * tree-ssa-dom.c: Include gimplify.h for unshare_expr. (avail_exprs_stack): Make a vector of pairs. (struct hash_expr_elt): Replace stmt member with vop member. (expr_elt_hasher::equal): Simplify. (initialize_hash_element): Adjust. (initialize_hash_element_from_expr): Likewise. (dom_opt_dom_walker::thread_across_edge): Likewise. (record_cond): Likewise. (dom_opt_dom_walker::before_dom_children): Likewise. (print_expr_hash_elt): Likewise. (remove_local_expressions_from_table): Restore previous state if requested. (record_equivalences_from_stmt): Record &x + CST as constant &MEM[&x, CST] for further propagation. (vuse_eq): New function. (lookup_avail_expr): For loads use the alias oracle to see whether a candidate from the expr hash is usable. (avail_expr_hash): Do not hash VUSEs. * gcc.dg/tree-ssa/ssa-dom-cse-2.c: New testcase. * gcc.dg/tree-ssa/ssa-dom-cse-3.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-2.c trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-3.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-dom.c