re PR tree-optimization/67769 (VRP pass does wrong optimization)
PR tree-optimization/67769 * tree-ssa-phiopt.c (conditional_replacement): Call reset_flow_sensitive_info_in_bb. (minmax_replacement): Likewise. (abs_replacement): Likewise. * gcc.dg/torture/pr67769.c: New test. From-SVN: r228341
This commit is contained in:
parent
4812613802
commit
9edaabf3d2
|
@ -1,3 +1,11 @@
|
|||
2015-10-01 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR tree-optimization/67769
|
||||
* tree-ssa-phiopt.c (conditional_replacement): Call
|
||||
reset_flow_sensitive_info_in_bb.
|
||||
(minmax_replacement): Likewise.
|
||||
(abs_replacement): Likewise.
|
||||
|
||||
2015-10-01 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* builtins.c: Don't include gomp-constants.h.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-10-01 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR tree-optimization/67769
|
||||
* gcc.dg/torture/pr67769.c: New test.
|
||||
|
||||
2015-10-01 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* gcc.dg/lto/pr55113_0.c: Skip on all x86 targets.
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
/* { dg-do run } */
|
||||
|
||||
static int
|
||||
clamp (int x, int lo, int hi)
|
||||
{
|
||||
return (x < lo) ? lo : ((x > hi) ? hi : x);
|
||||
}
|
||||
|
||||
__attribute__ ((noinline))
|
||||
short
|
||||
foo (int N)
|
||||
{
|
||||
short value = clamp (N, 0, 16);
|
||||
return value;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
if (foo (-5) != 0)
|
||||
__builtin_abort ();
|
||||
return 0;
|
||||
}
|
|
@ -646,6 +646,7 @@ conditional_replacement (basic_block cond_bb, basic_block middle_bb,
|
|||
}
|
||||
|
||||
replace_phi_edge_with_variable (cond_bb, e1, phi, new_var);
|
||||
reset_flow_sensitive_info_in_bb (cond_bb);
|
||||
|
||||
/* Note that we optimized this PHI. */
|
||||
return true;
|
||||
|
@ -1284,6 +1285,8 @@ minmax_replacement (basic_block cond_bb, basic_block middle_bb,
|
|||
gsi_insert_before (&gsi, new_stmt, GSI_NEW_STMT);
|
||||
|
||||
replace_phi_edge_with_variable (cond_bb, e1, phi, result);
|
||||
reset_flow_sensitive_info_in_bb (cond_bb);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1402,6 +1405,7 @@ abs_replacement (basic_block cond_bb, basic_block middle_bb,
|
|||
}
|
||||
|
||||
replace_phi_edge_with_variable (cond_bb, e1, phi, result);
|
||||
reset_flow_sensitive_info_in_bb (cond_bb);
|
||||
|
||||
/* Note that we optimized this PHI. */
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue