sh fixup_addr_diff_vecs patch

Aldy Hernandez aldyh@redhat.com
Fri Oct 27 07:30:00 GMT 2000


>>>>> "Joern" == Joern Rennecke <amylaar@redhat.com> writes:

 >> I've found a case where cse and jump optimization is changing:
 >> 
 >> (jump_insn 178 177 179 (parallel[ 
 >> (set (pc)
 >> (plus:SI (reg:SI 97)
 >> (label_ref 0)))
 >> (use (label_ref 180))
 >> ] ) -1 (nil)
 >> (nil))
 >> 
 >> into:
 >> 
 >> (jump_insn 178 218 179 (set (pc)
 >> (label_ref 155)) -1 (insn_list 218 (nil))
 >> (expr_list:REG_DEAD (reg:SI 1 r1)
 >> (nil)))

 > Shouldn't jump then delete the ADDR_DIFF_VEC too?

Yeah, in theory.  I haven't looked into why it wasn't deleting it
though.  But I think the patch should go in, to make sure that if the
casesi2 instruction isn't there, the compiler doesn't die.

I ran across this bug in an old toolchain, so recent snapshots of gcc
probably delete the ADDR_DIFF_VEC.

But the patch doesn't hurt... :)

Aldy


More information about the Gcc-patches mailing list