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 <rguent...@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