This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/1532] [3.3 Regression] -O3 generates (obviously) redundant tests and jumps


------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]