[PATCH] Make split_block and create_basic_block type-safe
Jeff Law
law@redhat.com
Tue Mar 17 19:36:00 GMT 2015
On 03/12/2015 07:20 AM, Richard Biener wrote:
>
> After noticing tree-parloop.c passing crap to split_block (a tree
> rather than a gimple or an rtx) I noticed those CFG functions simply
> take void * pointers. The following patch fixes that and adds
> two overloads, one for GIMPLE use and one for RTL use.
>
> Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
>
> Ok at this stage?
>
> Thanks,
> Richard.
>
> 2015-03-12 Richard Biener <rguenther@suse.de>
>
> * cfghooks.h (create_basic_block): Replace with two overloads
> for RTL and GIMPLE.
> (split_block): Likewise.
> * cfghooks.c (split_block): Rename to ...
> (split_block_1): ... this.
> (split_block): Add two type-safe overloads for RTL and GIMPLE.
> (split_block_after_labels): Call split_block_1.
> (create_basic_block): Rename to ...
> (create_basic_block_1): ... this.
> (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
> (create_empty_bb): Call create_basic_block_1.
> * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
> split_block_after_labels.
> * omp-low.c (expand_parallel_call): Likewise.
> (expand_omp_target): Likewise.
> (simd_clone_adjust): Likewise.
> * tree-chkp.c (chkp_get_entry_block): Likewise.
> * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
> create_basic_block overload.
> (cgraph_node::expand_thunk): Likewise.
> * tree-cfg.c (make_blocks): Likewise.
> (handle_abnormal_edges): Likewise.
> * tree-inline.c (copy_bb): Likewise.
Seems reasonable since it's very low risk and removes a difficult to
reproduce & diagnose compile-time issue.
But ultimately I think it's the release managers' call here.
Jeff
More information about the Gcc-patches
mailing list