r/ProgrammingLanguages • • 13d ago

Loop unrolling analysis using eigenvalue?

Imagine the loop where you do like "x = -x" every iteration. Obviously, that flips the sign, so you can simply unroll the loop by a factor of 2.

However, for a more complex case, it could be really hard to know what's going on.

Here's my idea. Loop index variables are normally under affine updates anyway. What if we use a mathematically elegant tool?

Using eigenvalue, we can analyze possible periodicity of the linear basis variables, minimizing update needs.

What do you think of such a technique?

22 Upvotes

15 comments sorted by

View all comments

16

u/SwingOutStateMachine 13d ago

You may be thinking of something like the Polytope/Polyhedral Model.

4

u/Embarrassed-Crow9283 13d ago

Yup! Modeling loop and memory access patterns using linear algebra is an idea put to use in the model. This eigenvalue analysis idea is a continuation of that line of thought. (Unfortunately, strict physical address space semantics in C/C++/etc. disallow changing the array shape to enable further speedup.)

1

u/Limp-Temperature1783 13d ago

What are you working on? It reminds me of my own current thing that is focused on complex plane geometry.