> > 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.
Also note that the hwloop_pattern_reg interface also expects a general purpose register in the doloop_end pattern.