This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]