From: rguenth Date: Wed, 29 Aug 2018 15:02:06 +0000 (+0000) Subject: 2018-08-29 Richard Biener X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=91860f4fcf8ef515ce604290c06131a7c9875498;p=thirdparty%2Fgcc.git 2018-08-29 Richard Biener * tree-ssa-sccvn.c (vuse_ssa_val): Return NULL for unvisited virtual operands that are not default defs to honor region boundaries. (rpo_vn_valueize): Remove ineffective code here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263960 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 91a06ed7a16b..dcec935d5bee 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2018-08-29 Richard Biener + + * tree-ssa-sccvn.c (vuse_ssa_val): Return NULL for unvisited + virtual operands that are not default defs to honor region + boundaries. + (rpo_vn_valueize): Remove ineffective code here. + 2018-08-29 Richard Biener PR tree-optimization/87132 diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index e3b9f1c7dbc2..39ab4b252858 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -474,12 +474,16 @@ vuse_ssa_val (tree x) do { - tree tem = SSA_VAL (x); - /* stmt walking can walk over a backedge and reach code we didn't - value-number yet. */ - if (tem == VN_TOP) + if (SSA_NAME_IS_DEFAULT_DEF (x)) return x; - x = tem; + vn_ssa_aux_t tem + = vn_ssa_aux_hash->find_with_hash (x, SSA_NAME_VERSION (x)); + /* For region-based VN this makes walk_non_aliased_vuses stop walking + when we are about to look at a def outside of the region. */ + if (!tem || !tem->visited) + return NULL_TREE; + gcc_assert (tem->valnum != VN_TOP); + x = tem->valnum; } while (SSA_NAME_IN_FREE_LIST (x)); @@ -5751,11 +5755,6 @@ rpo_vn_valueize (tree name) if (TREE_CODE (name) == SSA_NAME) { vn_ssa_aux_t val = VN_INFO (name); - /* For region-based VN this makes walk_non_aliased_vuses stop walking - when we are about to look at a def outside of the region. */ - if (SSA_NAME_IS_VIRTUAL_OPERAND (name) - && !val->visited) - return NULL_TREE; if (val) { tree tem = val->valnum;