Commit 7d048870 by Richard Biener Committed by Richard Biener

re PR tree-optimization/85168 (ICE in tree-ssa-coalesce.c: SSA corruption:…

re PR tree-optimization/85168 (ICE in tree-ssa-coalesce.c: SSA corruption: Unable to coalesce ssa_names which are marked as MUST COALESCE when -O2 is used)

2018-04-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/85168
	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid
	propagating abnormals.

	* gcc.dg/torture/pr85168.c: New testcase.

From-SVN: r259068
parent 24d21a0b
2018-04-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/85168
* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid
propagating abnormals.
2018-04-04 Chung-Ju Wu <jasonwucj@gmail.com>
* config/nds32/nds32.md (enabled): Use yes/no for this attribute.
......
2018-04-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/85168
* gcc.dg/torture/pr85168.c: New testcase.
2018-04-04 Alexandre Oliva <aoliva@redhat.com>
PR c++/84943
......
/* { dg-do compile } */
/* { dg-require-effective-target indirect_jumps } */
typedef struct {
struct {
char a;
} b;
} c;
int d, f;
c *e;
extern void i(void);
extern void sejtmp () __attribute__((returns_twice));
void g(void)
{
c *h = e;
if (f)
{
i();
h--;
if (d)
if (h->b.a)
i();
}
if (h->b.a)
sejtmp();
e = h;
}
......@@ -1249,7 +1249,9 @@ vn_reference_maybe_forwprop_address (vec<vn_reference_op_s> *ops,
return true;
}
if (!addr_base
|| TREE_CODE (addr_base) != MEM_REF)
|| TREE_CODE (addr_base) != MEM_REF
|| (TREE_CODE (TREE_OPERAND (addr_base, 0)) == SSA_NAME
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (TREE_OPERAND (addr_base, 0))))
return false;
off += addr_offset;
......@@ -1262,6 +1264,7 @@ vn_reference_maybe_forwprop_address (vec<vn_reference_op_s> *ops,
ptr = gimple_assign_rhs1 (def_stmt);
ptroff = gimple_assign_rhs2 (def_stmt);
if (TREE_CODE (ptr) != SSA_NAME
|| SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ptr)
|| TREE_CODE (ptroff) != INTEGER_CST)
return false;
......
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