[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread belyshev at depni dot sinp dot msu dot ru
--- Additional Comments From belyshev at depni dot sinp dot msu dot ru 2005-01-03 23:27 --- // final version :) void abort (void); int main () { int a; volatile int *b = &a; a = 1; if (*b != 1) abort (); return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1824

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread steven at gcc dot gnu dot org
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-03 22:59 --- the .t17.ssa dump: f (i1243D.1466) { volatile intD.0 * i2D.1471; intD.0 * i1D.1470; intD.0 iD.1469[2]; intD.0 D.1475; intD.0 D.1474; intD.0 D.1473; volatile intD.0 * D.1472; # BL

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-03 22:41 --- Here is the most reduced testcase: void abort (void); int f(int i1243) { int i[2], *i1 = i; i[0] = 1; volatile int *i2 = i1; i2[1] = 1; i1243 = 0; return i2[1]+i2[0]; } int main(void) { if(

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-03 21:10 --- (In reply to comment #30) (In reply to comment #31) > I'm not sure if it's the root cause yet, or just an interesting rat hole, but > we do not create any virtual operands for the *addr = statement > (or fo

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread law at redhat dot com
--- Additional Comments From law at redhat dot com 2005-01-03 21:07 --- I'm not sure if it's the root cause yet, or just an interesting rat hole, but we do not create any virtual operands for the *addr = statement (or for any statement with volatile operands). -- http://gcc.gnu.org

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread belyshev at depni dot sinp dot msu dot ru
--- Additional Comments From belyshev at depni dot sinp dot msu dot ru 2005-01-03 20:46 --- // even smaller testcase: void abort (void); void radix_tree_tag_clear (int *node) { int *path[2], **pathp = path, height; volatile int *addr; height = 1;

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-03 19:12 --- Hmm, the following statements don't have VOPS: D.1145_20->offset = offset_19; D.1146_22 = pathp_1->slot; D.1145_21->node = D.1147_23; D.1148_26 = D.1145_25->node; D.1145_25->slot = D.1154_32; D.1

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread arend dot bayer at web dot de
--- Additional Comments From arend dot bayer at web dot de 2005-01-03 13:55 --- Sorry, should have been a bit more specific probably: gcc version 4.0.0 20050103 (experimental) (i686-pc-linux-gnu) Kernel is 2.6.10, and the oops is triggered for me by the EXT3 code. -- Wha

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread giovannibajo at libero dot it
-- What|Removed |Added Severity|normal |critical Priority|P2 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2005-01-03 Thread arend dot bayer at web dot de
--- Additional Comments From arend dot bayer at web dot de 2005-01-03 13:41 --- Happens on x86 too (symptom is an oops on boot in radix_tree_tag_clear). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-12-19 Thread ak at muc dot de
--- Additional Comments From ak at muc dot de 2004-12-19 15:55 --- Problem still happens with 4.0.0 20041219 -- What|Removed |Added Status|WAITING

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-12-18 Thread steven at gcc dot gnu dot org
--- Additional Comments From steven at gcc dot gnu dot org 2004-12-18 12:03 --- We have reason to believe this bug is now fixed, but it is kind of hard to test... Can you please retry with CVS HEAD? -- What|Removed |Added --

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-12-15 Thread steven at gcc dot gnu dot org
--- Additional Comments From steven at gcc dot gnu dot org 2004-12-15 15:14 --- methinks the bug is in this code: /* ??? This bit ought not be needed. For any element not present in the initializer, we should simply set them to zero. Except we'd need

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-12-15 Thread steven at gcc dot gnu dot org
--- Additional Comments From steven at gcc dot gnu dot org 2004-12-15 15:16 --- My last comment of course does not concern this bug, oops sorry :-) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-12-13 Thread law at redhat dot com
--- Additional Comments From law at redhat dot com 2004-12-13 22:15 --- FWIW, I've walked through all the actions of DOM1 and AFAICT every change it makes is correct. I would have to strongly suspect that DOM1 is not the problem here, but is instead changing things in such a way as to ex

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-12-13 Thread law at redhat dot com
--- Additional Comments From law at redhat dot com 2004-12-13 21:01 --- (In reply to comment #15) > Confirmed, this looks like a jump threading bug. > Before we have: > goto (); > > :; > D.7815_42 = pathp_2->node; > tag_43 = tag_27; > idx_44 = idx_6; > D.7819_45 = D.7815_42->t

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-12-13 Thread law at redhat dot com
--- Additional Comments From law at redhat dot com 2004-12-13 20:46 --- I see no evidence that 18241 has the same root case as 18694. -- What|Removed |Added OtherBugsDepending

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-11-28 Thread rakdver at atrey dot karlin dot mff dot cuni dot cz
--- Additional Comments From rakdver at atrey dot karlin dot mff dot cuni dot cz 2004-11-28 09:17 --- Subject: Re: [4.0 Regression] linux kernel loop gets miscompiled > > --- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-28 > 01:28 --- > Confirmed, this lo

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-11-27 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-28 01:28 --- Confirmed, this looks like a jump threading bug. Before we have: goto (); :; D.7815_42 = pathp_2->node; tag_43 = tag_27; idx_44 = idx_6; D.7819_45 = D.7815_42->tags[tag_43][idx_44]; if (D.7819_

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-11-27 Thread ak at muc dot de
--- Additional Comments From ak at muc dot de 2004-11-28 01:21 --- When I comment out the first pass_dominator in tree-optimize.c and compile with -O1 it works too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-11-27 Thread ak at muc dot de
--- Additional Comments From ak at muc dot de 2004-11-28 01:05 --- -O1 -fno-tree-dominator-opts seems to avoid the problem -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-11-27 Thread ak at muc dot de
--- Additional Comments From ak at muc dot de 2004-11-28 00:17 --- Tried -fno-tree-ch. Didn't help. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-11-27 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-27 23:07 --- Can you try with -fno-tree-ch (or -Os)? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-11-24 Thread ak at muc dot de
--- Additional Comments From ak at muc dot de 2004-11-25 00:22 --- Problem still happens as of HEAD 041125 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-11-16 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-16 17:54 --- Does this still happen? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-10-31 Thread ak at muc dot de
--- Additional Comments From ak at muc dot de 2004-11-01 03:08 --- To clarify the previous comment means that the problem is likely in the first loop in the function, not in the second -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-10-31 Thread ak at muc dot de
--- Additional Comments From ak at muc dot de 2004-11-01 03:07 --- I must correct myself slightly - the kernel oops I see is not the second loop, but in the check before: ret = *pathp[0].slot; <--- references either NULL or a bogus pointer if (ret == NULL)

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-10-31 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-01 02:36 --- The corresponding asm for the loop: with -fno-ivopts: L11: ld r11,8(r10) srd r2,r4,r7 addi r0,r7,-6 rldicl r2,r2,0,58 rldicl r7,r0,0,32 ld r9,0(r11) sl

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-10-31 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-01 02:34 --- Also for the first loop, we look we do much worse code with -fivopts at least on powerpc64: With -fno-ivopts: offset = (int) (unsigned int) (index >> (int) shift) & 63; pathp = pathp.109 + 24B; pathp-

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-10-31 Thread giovannibajo at libero dot it
--- Additional Comments From giovannibajo at libero dot it 2004-11-01 02:29 --- (In reply to comment #3) > Zdenek, two questions: > - Aren't ivtmp.128 and ivtmp.124 duplicates? Uhm, forget about this :) > - Since ivtmp.128 behaves exactly like pathp, there is a way to at least preser

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-10-31 Thread giovannibajo at libero dot it
--- Additional Comments From giovannibajo at libero dot it 2004-11-01 02:26 --- The final tree dump of the loop with -O1 -fno-ivopts looks like this: :; nr = pathp->offset; node = pathp->node; D.7834 = &node->tags; addr.9 = (volatile long int *) ((long unsigned int *) D.7834 + D

[Bug tree-optimization/18241] [4.0 Regression] linux kernel loop gets miscompiled

2004-10-30 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-10-31 04:41 --- Does -fno-ivopts produce a correct code? -- What|Removed |Added Keywords|