> On Tue, Oct 21, 2014 at 7:20 PM, Yangfei (Felix) <felix.y...@huawei.com> > wrote: > > If the tripcount spill issue is not handled in the pattern, ICE may happen > > then. > > Here reload is trying to spill pseudo 173, but a memory operand is not > > allowed > in zero_cost_loop_end pattern. > > And this is what I am trying to solve. > > We have full control of the zero_cost_loop_end pattern. Plus, it doesn't > actually > generate any real code. Edit it so it can take a memory operand.
Here the key point is we need a general purpose register for the "loop" instruction. If the trip count register is spilled, we don't have a general purpose register then. And we cannot use zero-cost looping in this situation. And that's why I spilt the zero_cost_loop_end into a normal test and branch.