[Bug debug/29558] [4.2/4.3 Regression] ICE in set_variable_part, at var-tracking.c:2140

2007-02-19 Thread rth at gcc dot gnu dot org


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

2007-02-19 Thread rth at gcc dot gnu dot org


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

2007-02-19 Thread mmitchel at gcc dot gnu dot org


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

2007-02-19 Thread rth at gcc dot gnu dot org


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

2007-02-15 Thread rth at gcc dot gnu dot org


-- 

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

2007-01-19 Thread bergner at gcc dot gnu dot org


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

2007-01-19 Thread bergner at gcc dot gnu dot org


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

2006-11-07 Thread janis at gcc dot gnu dot org


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