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