From f548ece7abc0a0c81dd049e9f8b480ff2c38e18b Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 14 Feb 2023 16:36:03 +0100 Subject: middle-end/108786 - add bitmap_clear_first_set_bit This adds bitmap_clear_first_set_bit and uses it where previously bitmap_clear_bit followed bitmap_first_set_bit. The advantage is speeding up the search and avoiding to clobber ->current. PR middle-end/108786 * bitmap.h (bitmap_clear_first_set_bit): New. * bitmap.cc (bitmap_first_set_bit_worker): Rename from bitmap_first_set_bit and add optional clearing of the bit. (bitmap_first_set_bit): Wrap bitmap_first_set_bit_worker. (bitmap_clear_first_set_bit): Likewise. * df-core.cc (df_worklist_dataflow_doublequeue): Use bitmap_clear_first_set_bit. * graphite-scop-detection.cc (scop_detection::merge_sese): Likewise. * sanopt.cc (sanitize_asan_mark_unpoison): Likewise. (sanitize_asan_mark_poison): Likewise. * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise. * tree-into-ssa.cc (rewrite_blocks): Likewise. * tree-ssa-dce.cc (simple_dce_from_worklist): Likewise. * tree-ssa-sccvn.cc (do_rpo_vn_1): Likewise. --- gcc/graphite-scop-detection.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'gcc/graphite-scop-detection.cc') diff --git a/gcc/graphite-scop-detection.cc b/gcc/graphite-scop-detection.cc index f976451..9955199 100644 --- a/gcc/graphite-scop-detection.cc +++ b/gcc/graphite-scop-detection.cc @@ -469,8 +469,7 @@ scop_detection::merge_sese (sese_l first, sese_l second) const its border it acts more like a visited bitmap. */ do { - int index = bitmap_first_set_bit (worklist); - bitmap_clear_bit (worklist, index); + int index = bitmap_clear_first_set_bit (worklist); basic_block bb = BASIC_BLOCK_FOR_FN (cfun, index); edge_iterator ei; edge e; -- cgit v1.1