[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Comment #14 from pinskia at gcc dot gnu dot org 2006-05-17 19:17 --- *** Bug 27647 has been marked as a duplicate of this bug. *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||scharest at druide dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Comment #13 from pinskia at gcc dot gnu dot org 2005-11-08 16:44 --- *** Bug 24737 has been marked as a duplicate of this bug. *** -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||fredrik dot littmarck at ||propellerheads dot se http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-09-03 19:55 --- Subject: Bug 23326 CVSROOT:/cvs/gcc Module name:gcc Branch: gcc-4_0-branch Changes by: [EMAIL PROTECTED] 2005-09-03 19:54:51 Modified files: gcc: ChangeLog tree-ssa-forwprop.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/tree-ssa: pr23326.C Log message: 2005-09-03 Richard Guenther [EMAIL PROTECTED] Andrew Pinski [EMAIL PROTECTED] Serge Belyshev [EMAIL PROTECTED] PR tree-optimization/23326 * tree-ssa-forwprop.c (substitute_single_use_vars): Only do transformation if valid. * g++.dg/tree-ssa/pr23326.C: New testcase. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=2.7592.2.409r2=2.7592.2.410 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-forwprop.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=2.11r2=2.11.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.5084.2.372r2=1.5084.2.373 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/tree-ssa/pr23326.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=NONEr2=1.1.2.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-09-03 19:55 --- Fixed. -- What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From matz at suse dot de 2005-09-01 15:11 --- This still isn't in the 4.0 branch. Perhaps ping it? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-09-01 15:18 --- It's in the tracker and I pinged it once already. One could commit it as obvious, though ;) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-22 12:15 --- *** Bug 23512 has been marked as a duplicate of this bug. *** -- What|Removed |Added CC||mec at google dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-08-12 10:57 --- Patch posted. -- What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2005- ||08/msg00738.html Keywords||patch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
-- What|Removed |Added Known to fail||4.0.2 Known to work||4.1.0 Target Milestone|--- |4.0.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-11 15:29 --- Confirmed. -- What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed||1 Last reconfirmed|-00-00 00:00:00 |2005-08-11 15:29:17 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-11 15:51 --- Oh, this is truely fixed for 4.1 and not a latent bug there. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-11 16:03 --- Created an attachment (id=9474) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9474action=view) Patch which fixes but needs testing This patch fixes the problem by continuing if we don't have a SSA_NAME or zero/one in the conditional. Richard if you could test this for me, that would be nice. -- What|Removed |Added AssignedTo|unassigned at gcc dot gnu |pinskia at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de 2005-08-11 17:43 --- I'll do that. Though + /* If we don't have NE_EXPR/NE_EXPR x INT_CST, then we cannot +optimize this case. */ + if ((cond_code == NE_EXPR || cond_code == EQ_EXPR) + TREE_CODE (TREE_OPERAND (cond, 1)) != INTEGER_CST) + continue; should probably read + /* If we don't have NE_EXPR/EQ_EXPR x INT_CST, then we cannot +optimize this case. */ + if (!((cond_code == NE_EXPR || cond_code == EQ_EXPR) +TREE_CODE (TREE_OPERAND (cond, 1)) == INTEGER_CST)) + continue; because else we might get f.i. LE_EXPR passing through? Maybe the little context confuses me here, though. I'll have a look before testing. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From pinskia at physics dot uc dot edu 2005-08-11 17:45 --- Subject: Re: [4.0 Regression] Wrong code from forwprop On Aug 11, 2005, at 1:43 PM, rguenth at tat dot physik dot uni-tuebingen dot de wrote: because else we might get f.i. LE_EXPR passing through? Maybe the little context confuses me here, though. We will never get LE_EXPR here as this is always a boolean type. -- Pinski -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326
[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop
--- Additional Comments From belyshev at depni dot sinp dot msu dot ru 2005-08-11 18:05 --- // self-contained C++ testcase, compile with -O2 extern C void abort (void); int j; void foo (bool x, bool y) { if (!x) j = 0; if (!x == y) j = 1; } int main (void) { foo (1, 1); if (j) abort (); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23326