[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