[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140
--- Comment #7 from rth at gcc dot gnu dot org 2007-02-19 16:11 --- Subject: Bug 29558 Author: rth Date: Mon Feb 19 16:10:49 2007 New Revision: 122130 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122130 Log: PR debug/29558 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P in memory. Added: branches/gcc-4_2-branch/gcc/testsuite/gcc.dg/debug/pr29558.c Modified: branches/gcc-4_2-branch/gcc/ChangeLog branches/gcc-4_2-branch/gcc/var-tracking.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29558
[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140
--- Comment #8 from rth at gcc dot gnu dot org 2007-02-19 16:22 --- Subject: Bug 29558 Author: rth Date: Mon Feb 19 16:21:59 2007 New Revision: 122131 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=122131 Log: PR debug/29558 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P in memory. Added: trunk/gcc/testsuite/gcc.dg/debug/pr29558.c Modified: trunk/gcc/ChangeLog trunk/gcc/var-tracking.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29558
[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140
--- Comment #9 from mmitchel at gcc dot gnu dot org 2007-02-19 20:34 --- RTH -- You checked in a patch for this on the 4.2 branch; should this issue be closed now? Thanks, -- Mark -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29558
[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140
--- Comment #10 from rth at gcc dot gnu dot org 2007-02-19 23:45 --- Fixed. -- rth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Priority|P1 |P3 Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29558
[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140
-- rth at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rth at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2006-10-23 16:06:32 |2007-02-15 17:50:41 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29558
[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140
--- Comment #5 from bergner at gcc dot gnu dot org 2007-01-19 22:30 --- The src we seem to be having problems with is: temp[0] |= bit; After local-alloc, we have the following RTL: (insn 143 28 29 6 pr29558.c:7 (set (reg:QI 142) (const_int -128 [0xff80])) 327 {*movqi_internal} (nil) (expr_list:REG_EQUIV (const_int -128 [0xff80]) (nil))) (insn 29 143 30 6 pr29558.c:7 (set (reg:SI 144) (ior:SI (subreg:SI (reg:QI 143 [ temp ]) 0) (subreg:SI (reg:QI 142) 0))) 137 {*boolsi3_internal1} (insn_list:REG_DEP_TRUE 27 (insn_list:REG_DEP_TRUE 28 (nil))) (expr_list:REG_DEAD (reg:QI 143 [ temp ]) (expr_list:REG_DEAD (reg:QI 142) (nil (insn 30 29 138 6 pr29558.c:7 (set (mem/s/j:QI (plus:DI (reg/f:DI 113 sfp) (const_int 48 [0x30])) [0 temp+0 S1 A128]) (subreg:QI (reg:SI 144) 3)) 327 {*movqi_internal} (insn_list:REG_DEP_TRUE 29 (nil)) (expr_list:REG_DEAD (reg:SI 144) (nil))) Which looks ok, but then after global-alloc/reload, we end up with: (insn 143 28 29 6 pr29558.c:7 (set (reg:QI 9 9 [142]) (const_int -128 [0xff80])) 327 {*movqi_internal} (nil) (expr_list:REG_EQUIV (const_int -128 [0xff80]) (nil))) (insn 29 143 30 6 pr29558.c:7 (set (reg:SI 0 0 [144]) (ior:SI (reg:SI 0 0 [orig:143 temp+-3 ] [143]) (reg:SI 9 9 [orig:142+-3 ] [142]))) 137 {*boolsi3_internal1} (insn_list:REG_DEP_TRUE 27 (insn_list:REG_DEP_TRUE 28 (nil))) (nil)) (insn 30 29 138 6 pr29558.c:7 (set (mem/s/j:QI (plus:DI (reg/f:DI 1 1) (const_int -16 [0xfff0])) [0 temp+0 S1 A128]) (reg:QI 0 0 [orig:144+3 ] [144])) 327 {*movqi_internal} (insn_list:REG_DEP_TRUE 29 (nil)) (nil)) I'm not sure why yet, but it seems the -3 offset in reg:SI 0 0 [orig:143 temp+-3 ] [143]) is causing problems in the var tracking code, such that find_variable_location_part() always returns -1 (ie, failure) which puts us into the code we ICE in. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29558
[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140
--- Comment #6 from bergner at gcc dot gnu dot org 2007-01-19 22:32 --- I should mention, I'm using current mainline on powerpc64-linux using -g -O -m64. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29558
[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140
--- Comment #4 from janis at gcc dot gnu dot org 2006-11-07 19:18 --- A regression hunt on powerpc64-linux using the testcase in comment #1 with -O -g -m64 identified the following patch: http://gcc.gnu.org/viewcvs?view=revrev=114013 r114013 | aoliva | 2006-05-23 05:35:21 + (Tue, 23 May 2006) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29558