| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-vrp1" } */ |
| |
| /* We should thread the if (!in_loop) completely leaving |
| just two conditionals. */ |
| /* { dg-final { scan-tree-dump-times "if \\(" 2 "vrp1" } } */ |
| |
| |
| union tree_node; |
| typedef union tree_node *tree; |
| |
| enum size_type_kind |
| { |
| SIZETYPE, |
| SSIZETYPE, |
| BITSIZETYPE, |
| SBITSIZETYPE, |
| TYPE_KIND_LAST |
| }; |
| extern tree size_int_kind (long, enum size_type_kind); |
| |
| |
| |
| typedef struct |
| { |
| |
| tree base, step; |
| |
| } affine_iv; |
| |
| struct loop |
| { |
| |
| int num; |
| }; |
| extern unsigned char simple_iv (); |
| |
| unsigned char |
| dr_analyze_innermost (struct loop *loop, tree poffset) |
| { |
| affine_iv offset_iv; |
| unsigned char in_loop = (loop && loop->num); |
| |
| |
| if (in_loop) |
| simple_iv (); |
| |
| if (!in_loop) |
| offset_iv.step = size_int_kind (0, SSIZETYPE); |
| |
| } |