------- Comment #3 from mkuvyrkov at gcc dot gnu dot org 2006-06-07 15:29 ------- (In reply to comment #2) > I bet a beer that this was caused by: > 2006-03-16 Maxim Kuvyrkov <[EMAIL PROTECTED]> > > * target.h (struct spec_info_def): New opaque declaration. > .... >
Nope. This one is caused by combine.c . 1. Combine generates a REG_DEAD note of the register that don't even appear in the code. 2. This note survives life2 but gets deleted in sched-rgn.c: check_dead_notes1 (). 3. After scheduler is finished, it recalculates life info, not attaching a REG_DEAD note for that register (which is, I think, correct). 4. Scheduler fails on the assert. So, the major problem is that combiner emits a strange REG_DEAD note (see combine.c: distribute_notes ()) and the minor problem is that life2 doesn't fix this (though, it would not generate such note by itself). -- mkuvyrkov at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mkuvyrkov at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27883