Call get_ops just for SSA_NAMEs (PR tree-optimization/71987)

PR tree-optimization/71987
	* tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
	just for SSA_NAMEs. Fix GNU coding style.
	* gcc.dg/torture/pr71987.c: New test.

From-SVN: r238704
This commit is contained in:
Martin Liska 2016-07-25 12:50:30 +02:00 committed by Martin Liska
parent 19bb30c065
commit 16b0596564
4 changed files with 35 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2016-07-25 Martin Liska <mliska@suse.cz>
PR tree-optimization/71987
* tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
just for SSA_NAMEs. Fix GNU coding style.
2016-07-25 Martin Liska <mliska@suse.cz>
PR gcov-profile/64874

View File

@ -1,3 +1,7 @@
2016-07-25 Martin Liska <mliska@suse.cz>
* gcc.dg/torture/pr71987.c: New test.
2016-07-22 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/71935

View File

@ -0,0 +1,21 @@
/* PR tree-optimization/71987 */
int a, b, *c, *d;
short fn1 (int p1)
{
return a ? p1 : a;
}
void fn2 ()
{
int e, *f = &e;
b = fn1 (d != &e);
c = f;
}
int main ()
{
fn2 ();
return 0;
}

View File

@ -3519,7 +3519,8 @@ maybe_optimize_range_tests (gimple *stmt)
(or &, corresponding to 1/0 in the phi arguments,
push into ops the individual range test arguments
of the bitwise or resp. and, recursively. */
if (!get_ops (rhs, code, &ops,
if (TREE_CODE (rhs) == SSA_NAME
&& !get_ops (rhs, code, &ops,
loop_containing_stmt (stmt))
&& (TREE_CODE_CLASS (gimple_assign_rhs_code (stmt))
!= tcc_comparison)
@ -3540,8 +3541,8 @@ maybe_optimize_range_tests (gimple *stmt)
else if (is_gimple_assign (stmt)
&& (TREE_CODE_CLASS (gimple_assign_rhs_code (stmt))
== tcc_comparison)
&&!get_ops (lhs, code, &ops,
loop_containing_stmt (stmt))
&& !get_ops (lhs, code, &ops,
loop_containing_stmt (stmt))
&& has_single_use (lhs))
{
operand_entry *oe = operand_entry_pool.allocate ();