|
Thanks,Raymond.
I found that before in the construction function of CG_LOOP,all loops
will be added a prolog and epilog,
the epilog and prolog is not only for SWP,is that right?
Thanks!
With my best regards,
Liu Yang
----- Original Message -----
Sent: Wednesday, November 15, 2000 10:44
AM
Subject: Re:
Liu Yang wrote:
Hello,Everyone!Could you find some info about the following
problems I meet? 1 When I
read the source code of Pro64,the comment said that: Loop unrolling is performed by: BB
*CG_LOOP_Unroll(LOOP_DESCR *loop), which returns a new unrolled body if the loop is
unrolled. It may also create a "remainder loop" in the prolog or
epilog.
But I do not found this function in
Pro64.And another function unroll_multi_BB never been called in Pro64.I want to know whether
this is true.
2 In Single_BB_Do_Loop_SWP,is unrolling
also done?
3 Before unroll,the whole loop converted
to a single BB,is that true?
Thanks!
With my best regards,Liu Yang Advanced Compiler Lab Institute of Computing Technology Chinese Academy of Science E-Mail : ly@xxxxxxxxx
CG_LOOP_Unroll has been replaced by CG_LOOP_Optimize. Most of
your questions can be answered by examining CG_LOOP_Otpimize. It
controls the interaction between unrolling and other
optimizations. It invokes Unroll_Do_Loop and
Unroll_Dowhile_Loop to do the actual unrolling. Unrolling of
multibb loop has not been supported/finished. Unrolling of single BB
loop (swp, no swp, do-loop, dowhile-loop) are supported. See
Unroll_Do_Loop and Unroll_Dowhile_Loop. Inexpensive if-conversion
is performed before entering CG_LOOP_Optimize. CG_LOOP_Optimize,
before performing unrolling, invokes Force_If_Convert to carry out more
expensive if-conversions if the cost can be justified by the benefit of
SWP or unrolling.
-Raymond
|