optimization bug

Jeffrey A Law law@cygnus.com
Sun Sep 21 21:28:00 GMT 1997


  In message < Pine.OSF.3.96.970921210021.4151A-100000@hepunix1.physics.yale.edu >you write:
  > Hi, 
  > I found that the bug is due to replace a register in a USE RTL with
  > its value.
Can you explain exactly why the compiler core dumped and why
you patch fixes the problem?

Using your testcase, compiling with -O2 I don't get an abort.

There are 3 instances where we have USE insns which have a
REG_DEAD note attached to them:

(insn 96 52 53 (use (reg:DI 92)) -1 (nil)
    (expr_list:REG_DEAD (reg:DI 92)
        (nil)))


(insn 95 88 64 (use (reg:DI 90)) -1 (nil)
    (expr_list:REG_DEAD (reg:DI 90)
        (nil)))


(insn 72 73 97 (use (reg/i:DI 0 $0)) -1 (nil)
    (expr_list:REG_DEAD (reg/i:DI 0 $0)
        (nil)))


In each and every case reg_equiv_replace is zero for the register
in question -- which would prevent the replacement code from
doing anything.

So, what exactly is the problem?
 
 Jeff



More information about the Gcc-bugs mailing list