[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#181096: [Bug tree-optimization/9814] gcc fails to optimise if (l&2) l|=2 away



------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-05-27 02:46 -------
Subject: Bug 9814

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	sayle@gcc.gnu.org	2005-05-27 02:46:01

Modified files:
	gcc            : ChangeLog ifcvt.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gcc.dg: pr9814-1.c 

Log message:
	PR tree-optimization/9814
	* ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
	instruction, add the necessary clobbers by re-expanding the RTL
	for arithmetic operations via optab.c's expand_unop/expand_binop.
	(noce_try_bitop): New function to optimize bit manipulation idioms
	of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
	(noce_process_if_block): Call noce_try_bitop.
	
	* gcc.dg/pr9814-1.c: New test case.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8916&r2=2.8917
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ifcvt.c.diff?cvsroot=gcc&r1=1.187&r2=1.188
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5540&r2=1.5541
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/pr9814-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9814

------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.



Reply to: