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



On Jan 29, 2004, at 3:28 PM, Zdenek Dvorak wrote:


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)


It makes
some loop manipulation functions simpler, and some of them thus rely
on the fact that it is so.

Zdenek

--
Devang


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