[Bug target/27883] [4.2 regression] in schedule_insns, at sched-rgn.c:3038 on mips
mkuvyrkov at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Jun 7 15:39:00 GMT 2006
------- 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 <mkuvyrkov@ispras.ru>
>
> * 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
More information about the Gcc-bugs
mailing list