1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fdump-tree-vrp1" } */ 3 4 /* We should thread the if (!in_loop) completely leaving 5 just two conditionals. */ 6 /* { dg-final { scan-tree-dump-times "if \\(" 2 "vrp1" } } */ 7 8 9 union tree_node; 10 typedef union tree_node *tree; 11 12 enum size_type_kind 13 { 14 SIZETYPE, 15 SSIZETYPE, 16 BITSIZETYPE, 17 SBITSIZETYPE, 18 TYPE_KIND_LAST 19 }; 20 extern tree size_int_kind (long, enum size_type_kind); 21 22 23 24 typedef struct 25 { 26 27 tree base, step; 28 29 } affine_iv; 30 31 struct loop 32 { 33 34 int num; 35 }; 36 extern unsigned char simple_iv (); 37 38 unsigned char dr_analyze_innermost(struct loop * loop,tree poffset)39dr_analyze_innermost (struct loop *loop, tree poffset) 40 { 41 affine_iv offset_iv; 42 unsigned char in_loop = (loop && loop->num); 43 44 45 if (in_loop) 46 simple_iv (); 47 48 if (!in_loop) 49 offset_iv.step = size_int_kind (0, SSIZETYPE); 50 51 } 52