Re: FORCING GCC TO UNROLL LOOPS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



dibstar <dibyam4@xxxxxxxxx> writes:

> I am using gcc 4.4.5. I have looked into unroll_loop_runtime_iterations. Can
> you please tell me how to change this code to enable unrolling by all
> factors?

I think I already did.  You have to tell me which part of the
explanation you didn't understand.

Ian

> Ian Lance Taylor-3 wrote:
>> 
>> dibstar <dibyam4@xxxxxxxxx> writes:
>> 
>>>         I wish to force gcc to unroll both the constant time iterating
>>> loops
>>> and the runtime iterating loops as outlined in loop-unroll.c. I modified
>>> the
>>> loop-unroll.c to place all unrolling decisions in the function
>>> decide-unroll-and-peel. I also made gcc interact with the user by asking
>>> the
>>> user the function name that which contains the desired loop and the loop
>>> number and the desired unroll factor. This seems to be fine for unrolling
>>> constant time iterating loops, i.e. i am able to unroll these loops by
>>> all
>>> factors from 1 to 8. However, for runtime loops, i get a segmentation
>>> fault.
>>> I analysed the code and found that gcc assumes that the unroll factor is
>>> a
>>> power of 2 for runtime loops. I wish to change this and force gcc to
>>> unroll
>>> a particular loop by all factors from 1 to 8. How can I do this?
>> 
>> What version of gcc?
>> 
>> I assume you mean decide_unrolling_and_peeling rather than
>> decide-unroll-and-peel.
>> 
>> I agree that the code assumes that the unroll factor is a power of 2.
>> If you want to use a different factor, you will have to change the code.
>> Are you asking how to do that?  Look in unroll_loop_runtime_iterations.
>> It uses AND; as the comment explains, that only works because it is
>> unrolling by a power of 2.  If you want something else to work, you will
>> need to change that.
>> 
>> Ian
>> 
>> 


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux