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 >> >>