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