This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
- From: "cvs-commit at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jul 2005 14:25:38 -0000
- Subject: [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
- References: <20050219032903.20070.amylaar@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-07-15 14:25 -------
Subject: Bug 20070
CVSROOT: /cvs/gcc
Module name: gcc
Branch: sh-elf-4_1-branch
Changes by: amylaar@gcc.gnu.org 2005-07-15 14:25:24
Modified files:
gcc : cfgcleanup.c ChangeLog
Log message:
Update this patch:
2005-07-14 J"orn Rennecke <joern.rennecke@st.com>
PR rtl-optimization/20070
http://gcc.gnu.org/ml/gcc-patches/2005-07/msg01041.html
* basic-block.h (STRUCT_EQUIV_START, STRUCT_EQUIV_RERUN): Define.
(STRUCT_EQUIV_FINAL, STRUCT_EQUIV_MAX_LOCAL): Likewise.
(struct struct_equiv_checkpoint, struct equiv_info): Likewise.
(struct_equiv_block_eq): Declare.
* cfgcleanup.c (reload.h, expr.h): #include.
(IMPOSSIBLE_MOVE_FACTOR): Define.
(flow_find_cross_jump): Remove.
(assign_reg_reg_set, struct_equiv, struct_equiv_set): New functions.
(struct_equiv_dst_mem, struct_equiv_make_checkpoint): Likewise.
(struct_equiv_improve_checkpoint): Likewise.
(struct_equiv_restore_checkpoint, struct_equiv_death): Likewise.
(struct_equiv_block_eq): Likewise.
(find_dying_inputs, resolve_input_conflict): Likewise.
(try_crossjump_to_edge): Use struct_equiv_block_eq instead of
flow_find_cross_jump.
* ifcvt.c (noce_try_complex_cmove): New function.
(noce_process_if_block): Call it.
For flag_expensive_optimizations, update cond_exec_changed_p on
success.
(rest_of_handle_if_conversion): For flag_expensive_optimizations,
provide if_convert with register lifeness info.
Back out this change:
2005-03-07 Kazu Hirata <kazu@cs.umass.edu>
* recog.c (verify_changes): Make it static.
* recog.h: Remove the corresponding prototype.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgcleanup.c.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.143.2.3&r2=1.143.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=2.8142.2.22&r2=2.8142.2.23
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20070