This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [lno] [PATCH] Loop Versioning
Hello,
> >>>this patch should fix this.
> >>
> >>It causes abort() at
> >>
> >>find_induction_variable() --> find_givs() -->
> >>get_loop_body_in_dom_order()
> >>
> >>>But first, could you please check with what
> >>>statement the preheader of the loop in this case ends?
> >>
> >>conditional statement
> >>if (cond) goto L1; else goto L2;
> >>
> >>>I assumed that
> >>>since I force the preheader to have just a single successor,
> >>
> >>hmm... in loop versioning I create a pre-header with two
> >>successors. One is original loop and second is new version of
> >>original loop.
> >
> >could you please change this (call loop_split_edge_with (e, NULL)
> >on both created edges), so that this property is fulfilled?
>
> OK. I did not know about this restriction. Now I am able to make
> progress.
> But it seems find_optimal_iv_set_1() goes in infinite loop while
> compiling
> rtl.c on powerpc-darwin, with or without loop versioning. (without your
> patch to handle loop preheader with two successors)
IIRC it just eats *lots* of memory (about 600 MB on i686). It is on my
todo list, I should get to it tomorrow.
Zdenek