mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-09 12:33:56 +08:00
re PR tree-optimization/21001 (VRP is weak when the tested variable in a COND_EXPR is used only in the COND_EXPR.)
gcc/ PR tree-optimization/21001 * tree-optimize.c (init_tree_optimization_passes): Move the first pass_forwprop immediately before pass_vrp. testsuite/ PR tree-optimization/21001 * gcc.dg/tree-ssa/pr21001.c: New. From-SVN: r98309
This commit is contained in:
parent
0ec7a4d1ee
commit
0d21c2a2fe
@ -1,3 +1,9 @@
|
||||
2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
PR tree-optimization/21001
|
||||
* tree-optimize.c (init_tree_optimization_passes): Move the
|
||||
first pass_forwprop immediately before pass_vrp.
|
||||
|
||||
2005-04-17 Ian Lance Taylor <ian@airs.com>
|
||||
|
||||
* c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
PR tree-optimization/21001
|
||||
* gcc.dg/tree-ssa/pr21001.c: New.
|
||||
|
||||
2005-04-17 Thomas Koenig <Thomas.Koenig@online.de>
|
||||
|
||||
PR libfortran/21075
|
||||
|
20
gcc/testsuite/gcc.dg/tree-ssa/pr21001.c
Normal file
20
gcc/testsuite/gcc.dg/tree-ssa/pr21001.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* PR tree-optimization/21001
|
||||
VRP did not insert ASSERT_EXPRs when the variable tested in a
|
||||
COND_EXPR is a single-use variable. By propagating the definition
|
||||
of the single-use variable into the COND_EXPR, we can get useful
|
||||
range infomation out of the conditional. */
|
||||
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-vrp-details" } */
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
int b = a != 0;
|
||||
if (b)
|
||||
if (a != 0)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "Folding predicate" 1 "vrp"} } */
|
@ -356,9 +356,9 @@ init_tree_optimization_passes (void)
|
||||
NEXT_PASS (pass_dominator);
|
||||
NEXT_PASS (pass_copy_prop);
|
||||
NEXT_PASS (pass_dce);
|
||||
NEXT_PASS (pass_forwprop);
|
||||
NEXT_PASS (pass_vrp);
|
||||
NEXT_PASS (pass_merge_phi);
|
||||
NEXT_PASS (pass_forwprop);
|
||||
NEXT_PASS (pass_phiopt);
|
||||
NEXT_PASS (pass_may_alias);
|
||||
NEXT_PASS (pass_tail_recursion);
|
||||
|
Loading…
Reference in New Issue
Block a user