Loop-iv.c ICEs on subregs
Maxim Kuvyrkov
maxim@codesourcery.com
Fri Nov 26 22:17:00 GMT 2010
On Nov 26, 2010, at 3:51 AM, Zdenek Dvorak wrote:
> Hi,
>
>> I'm investigating an ICE in loop-iv.c:get_biv_step(). I hope you can shed some light on what the correct fix would be.
>>
>> The ICE happens when processing:
>> ==
>> (insn 111 (set (reg:SI 304)
>> (plus (subreg:SI (reg:DI 251) 4)
>> (const_int 1))))
>>
>> (insn 177 (set (subreg:SI (reg:DI 251))
>> (reg:SI 304)))
>> ==
...
>
> loop iv analysis currently does not handle assignments to subregs
...
> So, if such a code
> gets produced consistently for a large fraction of the loops, it would be
> necessary to teach loop-iv to analyze induction variables represented in
> subregs. This would mean a more involved rewrite of loop-iv, though,
I see. In that case a simpler way to fix the problem may be to move Tom's extension elimination pass /after/ loop optimizers. Do you (or anyone reading this thread) have suggestions on what would be a good spot in the optimization pipeline for sign- and zero-extension elimination pass?
Thanks,
--
Maxim Kuvyrkov
CodeSourcery
+1-650-331-3385 x724
More information about the Gcc
mailing list