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
mailing list