On Thu, Oct 23, 2014 at 11:51 PM, Yangfei (Felix) <felix.y...@huawei.com> wrote:
> Thanks for the explanation. I think I am clear about what you are thinking 
> now.
> That's an interesting question. I am not sure about reason why GCC's reload 
> cannot handle a doloop_end insn.
> I guess maybe the doloop_end pattern is special? I mean it's a branch insn in 
> a parallel form.


No it is not special.  Just jump are never handled by reload.  I
thought this was documented somewhere also.  Basically the main issue
with jumps is where does the reload value go which side of the jump?

Thanks,
Andrew

>
>
>
>>
>> On Thu, Oct 23, 2014 at 11:40 PM, Yangfei (Felix) <felix.y...@huawei.com>
>> wrote:
>> > 1. The original xtensa port never generates "loop" instruction at all.
>> > 2. A port doesn't need to implement hwloop_pattern_reg hook if it has no
>> zero-cost loop instruction.
>> >
>> > Is that clear?
>>
>> We are talking in circles. I understand very well what goes on here.
>>
>> My point is:
>>
>> 1. Right now, today, GCC generates loops with branch instructions even when 
>> the
>> trip count is spilled.
>> 2. Branch instructions and loop instructions have identical register 
>> requirements.
>>
>> Therefore:
>>
>> 3. loop instructions should be generatable when the trip count is spilled.

Reply via email to