diff options
Diffstat (limited to 'gcc/cfgloop.c')
-rw-r--r-- | gcc/cfgloop.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c index 4c9bbf0..0e95323 100644 --- a/gcc/cfgloop.c +++ b/gcc/cfgloop.c @@ -887,6 +887,19 @@ get_loop_body_in_dom_order (const struct loop *loop) return tovisit; } +/* Gets body of a LOOP sorted via provided BB_COMPARATOR. */ + +basic_block * +get_loop_body_in_custom_order (const struct loop *loop, + int (*bb_comparator) (const void *, const void *)) +{ + basic_block *bbs = get_loop_body (loop); + + qsort (bbs, loop->num_nodes, sizeof (basic_block), bb_comparator); + + return bbs; +} + /* Get body of a LOOP in breadth first sort order. */ basic_block * |