alpha combine/schedule conflict
Richard Henderson
rth@cygnus.com
Mon Oct 27 16:30:00 GMT 1997
The attached code produces with -O2
;; Start of basic block 10, registers live: 15 [$15] 30 [$30] 63 [FP] 68 69 72
(insn 553 145 187 (use (reg:DI 133)) -1 (nil)
(expr_list:REG_DEAD (reg:DI 133)
(nil)))
emitted from
#2 0x1201a3048 in distribute_notes () at ../../egcs/gcc/combine.c:11257
#3 0x12017bd84 in try_combine () at ../../egcs/gcc/combine.c:2260
#4 0x120176300 in combine_instructions () at ../../egcs/gcc/combine.c:597
There are no other references to reg 133. Schedule then aborts at
#1 0x1201f4498 in schedule_block () at ../../egcs/gcc/sched.c:3443
because it has a REG_DEAD note it doesn't know what to do with.
What is the correct fix -- teach distribute_notes not to emit the
use if there are no other references to the reg at all, or to teach
schedule_block not to barf?
r~
More information about the Gcc
mailing list