This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: sh fixup_addr_diff_vecs patch
- To: amylaar at redhat dot com
- Subject: Re: sh fixup_addr_diff_vecs patch
- From: Aldy Hernandez <aldyh at redhat dot com>
- Date: Fri, 27 Oct 2000 10:31:24 -0400
- CC: gcc-patches at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- References: <200010271426.e9REQbf15428@tantra.cygnus.co.uk>
>>>>> "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