This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/1532] [3.3 Regression] -O3 generates (obviously) redundant tests and jumps
- 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: 5 Mar 2004 17:56:11 -0000
- Subject: [Bug target/1532] [3.3 Regression] -O3 generates (obviously) redundant tests and jumps
- References: <20010101090600.1532.duchier@ps.uni-sb.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-03-05 17:56 -------
Subject: Bug 1532
CVSROOT: /cvs/gcc
Module name: gcc
Branch: gcc-3_3-branch
Changes by: ian@gcc.gnu.org 2004-03-05 17:55:58
Modified files:
gcc : ChangeLog Makefile.in cse.c flow.c hooks.c
hooks.h rtl.h target-def.h target.h toplev.c
gcc/config/i386: i386.c
gcc/doc : gccint.texi tm.texi
Log message:
PR target/1532
Backport from mainline:
2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (cse_change_cc_mode_insns): Stop at any instruction
which modifies NEWREG.
(cse_condition_code_reg): Update the mode of CC_REG in
CC_SRC_INSN on our own.
2004-02-11 Richard Henderson <rth@redhat.com>
* flow.c (insn_dead_p): A clobber of a dead hard register is a
dead insn after reload.
2004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
* cse.c (cse_cc_succs): Change the mode of the source expression
as soon as decide we need a new mode. Don't permit changing modes
if we found a match in a successor block.
(cse_condition_code_reg): Save original mode of source expression
so that we know whether we have to change the mode in other
insns.
2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
* cse.c: (cse_cc_succs) Fix comparison warning.
2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
* cse.c: Include "target.h".
(cse_change_cc_mode): New static function.
(cse_change_cc_mode_insns, cse_cc_succs): Likewise.
(cse_condition_code_reg): New function.
(default_cc_modes_compatible): New function.
* rtl.h (cse_condition_code_reg): Declare.
(default_cc_modes_compatible): Declare.
* toplev.c (rest_of_compilation): Call cse_condition_code_reg.
* target.h (struct gcc_target): Add fixed_condition_code_regs and
cc_modes_compatible.
* target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
(TARGET_CC_MODES_COMPATIBLE): Define.
(TARGET_INITIALIZER): Add new initializers.
* targhooks.c (default_cc_modes_compatible): Declare.
* hooks.c (hook_bool_intp_intp_false): New function.
* hooks.h (hook_bool_intp_intp_false): Declare.
* config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
(TARGET_CC_MODES_COMPATIBLE): Define.
(ix86_fixed_condition_code_regs): New static function.
(ix86_cc_modes_compatible): Likewise.
* doc/gccint.texi: Add copyright 2004.
* doc/tm.texi (Condition Code): Document new hooks.
* Makefile.in (cse.o): Depend upon $(TARGET_H).
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.16114.2.919&r2=1.16114.2.920
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.958.2.18&r2=1.958.2.19
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cse.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.244.2.3&r2=1.244.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.541.2.5&r2=1.541.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/hooks.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.8&r2=1.8.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/hooks.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.8&r2=1.8.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/rtl.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.375.2.6&r2=1.375.2.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/target-def.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.38&r2=1.38.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/target.h.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.44&r2=1.44.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/toplev.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.690.2.24&r2=1.690.2.25
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.495.2.33&r2=1.495.2.34
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/gccint.texi.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.5.20.4&r2=1.5.20.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/tm.texi.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.182.2.7&r2=1.182.2.8
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1532