Repost: RFA [4.1]: improvement to if-conversion and cross-jumping (PR20070)

Paul Brook paul@codesourcery.com
Wed Dec 14 23:03:00 GMT 2005


On Friday 02 December 2005 21:26, Joern RENNECKE wrote:
> 2005-12-02  J"orn Rennecke <joern.rennecke@st.com>
> 
>         PR rtl-optimization/20070 / part1
> 	* basic-block.h (STRUCT_EQUIV_START, STRUCT_EQUIV_RERUN): Define.
> 	(STRUCT_EQUIV_FINAL, STRUCT_EQUIV_MAX_LOCAL): Likewise.
> 	(STRUCT_EQUIV_NEED_FULL_BLOCK): Likewise.
> 	(struct struct_equiv_checkpoint, struct equiv_info): Likewise.
> 	(insns_match_p, struct_equiv_block_eq, struct_equiv_init): Declare.
> 	(rtx_equiv_p, condjump_equiv_p): Likewise.
> 	* cfgcleanup.c (merge_memattrs, insns_match_p): Move from here into..
> 	* struct-equiv.c: New file.
> 	(IMPOSSIBLE_MOVE_FACTOR): Define.
> 	(assign_reg_reg_set, rtx_equiv_p, struct_equiv_set): New functions.
> 	(struct_equiv_dst_mem, struct_equiv_make_checkpoint): Likewise.
> 	(struct_equiv_improve_checkpoint): Likewise.

> +#ifdef HAVE_cc0
> +  if (reg_mentioned_p (cc0_rtx, info->x_start) && !sets_cc0_p 
(info->x_start))
> +    return;
> +#endif

This breaks cc0 targets:
../../gcc/gcc/struct-equiv.c: In function 'struct_equiv_improve_checkpoint':
../../gcc/gcc/struct-equiv.c:252: error: 'struct equiv_info' has no member 
named 'x_start'

Paul



More information about the Gcc-patches mailing list