On Fri, Jan 11, 2013 at 12:06:04PM +0100, Richard Biener wrote:
> 
> VRP no longer (since 4.1.2 at least) can optimize vrp06.c in one go
> because we happen to chose a symbolic range when

Just FYI, GCC never optimized that apparently, at least in r100000
(vrp06.c has been added in r100478) vrp didn't fold any of the 3 foldings
looked for by the testcase, and in r102000 it folded just the first 2 and
not the third (and from that point onwards), don't have anything in between
though.

> *** gcc/testsuite/gcc.dg/tree-ssa/vrp06.c     (revision 195103)
> --- gcc/testsuite/gcc.dg/tree-ssa/vrp06.c     (working copy)
> *************** foo (int i, int j, int a)
> *** 27,31 ****
>   
>   /* { dg-final { scan-tree-dump-times "Folding predicate i_\[0-9\]+.*0 to 0" 
> 1 "vrp1" } } */
>   /* { dg-final { scan-tree-dump-times "Folding predicate j_\[0-9\]+.*0 to 1" 
> 1 "vrp1" } } */
> ! /* { dg-final { scan-tree-dump-times "Folding predicate 
> i_\[0-9]+.*j_\[0-9\]+.* to 0" 1 "vrp1" { xfail *-*-* } } } */
>   /* { dg-final { cleanup-tree-dump "vrp1" } } */
> --- 27,31 ----
>   
>   /* { dg-final { scan-tree-dump-times "Folding predicate i_\[0-9\]+.*0 to 0" 
> 1 "vrp1" } } */
>   /* { dg-final { scan-tree-dump-times "Folding predicate j_\[0-9\]+.*0 to 1" 
> 1 "vrp1" } } */
> ! /* { dg-final { scan-tree-dump-times "Folding predicate 
> i_\[0-9]+.*j_\[0-9\]+.* to 0" 1 "vrp1" } } */
>   /* { dg-final { cleanup-tree-dump "vrp1" } } */

If you are changing the testcase again, please replace all .* with \[^\n\r\]* ,
so that it doesn't match 0 to 0 etc. from different lines.

        Jakub

Reply via email to