Commit 16b05965 by Martin Liska Committed by Martin Liska

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
parent 19bb30c0
2016-07-25 Martin Liska <mliska@suse.cz> 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 PR gcov-profile/64874
* gcov-io.h: Update command about file format. * gcov-io.h: Update command about file format.
* gcov-iov.c (main): Adapt the numbering scheme. * gcov-iov.c (main): Adapt the numbering scheme.
......
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> 2016-07-22 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/71935 PR fortran/71935
......
/* 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;
}
...@@ -3519,7 +3519,8 @@ maybe_optimize_range_tests (gimple *stmt) ...@@ -3519,7 +3519,8 @@ maybe_optimize_range_tests (gimple *stmt)
(or &, corresponding to 1/0 in the phi arguments, (or &, corresponding to 1/0 in the phi arguments,
push into ops the individual range test arguments push into ops the individual range test arguments
of the bitwise or resp. and, recursively. */ 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)) loop_containing_stmt (stmt))
&& (TREE_CODE_CLASS (gimple_assign_rhs_code (stmt)) && (TREE_CODE_CLASS (gimple_assign_rhs_code (stmt))
!= tcc_comparison) != tcc_comparison)
...@@ -3540,8 +3541,8 @@ maybe_optimize_range_tests (gimple *stmt) ...@@ -3540,8 +3541,8 @@ maybe_optimize_range_tests (gimple *stmt)
else if (is_gimple_assign (stmt) else if (is_gimple_assign (stmt)
&& (TREE_CODE_CLASS (gimple_assign_rhs_code (stmt)) && (TREE_CODE_CLASS (gimple_assign_rhs_code (stmt))
== tcc_comparison) == tcc_comparison)
&&!get_ops (lhs, code, &ops, && !get_ops (lhs, code, &ops,
loop_containing_stmt (stmt)) loop_containing_stmt (stmt))
&& has_single_use (lhs)) && has_single_use (lhs))
{ {
operand_entry *oe = operand_entry_pool.allocate (); operand_entry *oe = operand_entry_pool.allocate ();
......
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