1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fsplit-paths -fdump-tree-split-paths-details -w" } */
4 typedef struct bitmap_head_def
*bitmap
;
5 extern void vec_assert_fail (const char *, const char *, const char *file_
,
6 unsigned line_
, const char *function_
)
7 __attribute__ ((__noreturn__
));
8 typedef struct VEC_int_base
16 VEC_int_base_space (VEC_int_base
* vec_
, int alloc_
, const char *file_
,
17 unsigned line_
, const char *function_
)
19 return vec_
? vec_
->alloc
- vec_
->num
>= (unsigned) alloc_
: !alloc_
;
22 static __inline__
int *
23 VEC_int_base_quick_push (VEC_int_base
* vec_
, int obj_
, const char *file_
,
24 unsigned line_
, const char *function_
)
27 vec_
->alloc
) ? 0 : (vec_assert_fail ("push", "VEC(int,base)",
28 file_
, line_
, function_
), 0));
31 typedef struct VEC_int_heap
36 void *vec_heap_o_reserve (VEC_int_heap
*, int, __SIZE_TYPE__
, __SIZE_TYPE__
);
37 int VEC_int_base_length (VEC_int_base
*);
39 VEC_int_heap_reserve (VEC_int_heap
** vec_
, int alloc_
, const char *file_
,
40 unsigned line_
, const char *function_
)
43 !VEC_int_base_space (((*vec_
) ? &(*vec_
)->base
: 0), alloc_
, file_
, line_
,
47 (VEC_int_heap
*) vec_heap_o_reserve (*vec_
, alloc_
,
48 __builtin_offsetof (VEC_int_heap
,
53 static __inline__
int *
54 VEC_int_heap_safe_push (VEC_int_heap
** vec_
, const int obj_
,
55 const char *file_
, unsigned line_
,
56 const char *function_
)
58 VEC_int_heap_reserve (vec_
, 1, file_
, line_
, function_
);
59 return VEC_int_base_quick_push (((*vec_
) ? &(*vec_
)->base
: 0), obj_
, file_
,
63 typedef struct bitmap_head_def
71 int bmp_iter_and_compl_init (bitmap_iterator
*, bitmap_head
*, bitmap
, int,
73 int bmp_iter_and_compl (bitmap_iterator
*, int *);
74 void bmp_iter_next (bitmap_iterator
*, int *);
75 void VEC_int_heap_free (VEC_int_heap
**);
77 compute_idf (bitmap_head
* dfs
)
81 VEC_int_heap
*work_stack
;
82 bitmap phi_insertion_points
;
83 while ((VEC_int_base_length (((work_stack
) ? &(work_stack
)->base
: 0))) > 0)
85 for (bmp_iter_and_compl_init
86 (&(bi
), (&dfs
[bb_index
]), (phi_insertion_points
), (0), &(i
));
87 bmp_iter_and_compl (&(bi
), &(i
)); bmp_iter_next (&(bi
), &(i
)))
89 (VEC_int_heap_safe_push
90 (&(work_stack
), i
, "/home/gcc/virgin-gcc/gcc/cfganal.c", 1349,
94 (VEC_int_heap_free (&work_stack
));
97 /* { dg-final { scan-tree-dump-not "Duplicating join block" "split-paths" } } */