[PATCH][RFC] Use a local edge flag instead of a sbitmap in RPO compute

Jeff Law law@redhat.com
Thu Nov 21 22:40:00 GMT 2019


On 11/21/19 1:33 AM, Richard Biener wrote:
> 
> This gets away with the top caller of sbitmap_alloc in a tramp3d
> compile which is pre_and_rev_post_order_compute_fn (yeah, we're
> invoking that way too often).  I've introduced those auto_*_flag
> things for region based VN but I think it makes sense to use
> those also for the non-region case.
> 
> Code-size of pre_and_rev_post_order_compute_fn increases with the
> patch though, likely for allocation/deallocation code of the
> flag which is inlined and due to the extra tail loop.  Memory
> locality should improve here though (->flags is in the same
> cache line as ->index which we access anyway) - but that's 
> maybe wishful thinking, micro-benchmarking this seems hard and
> large vs. small CFGs might tell different stories as well.
> 
> Bootstrapped and tested on x86_64-unknown-linux-gnu, OK?
> 
> Thanks,
> Richard.
> 
> 2019-11-21  Richard Biener  <rguenther@suse.de>
> 
> 	* cfganal.c (pre_and_rev_post_order_compute_fn): Use an
> 	auto_bb_flag instead of an sbitmap for visited handling.
LGTM.
jeff



More information about the Gcc-patches mailing list