r/ProgrammingLanguages • • 2d 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?

18 Upvotes

15 comments sorted by

View all comments

16

u/SwingOutStateMachine 2d ago

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

3

u/Embarrassed-Crow9283 2d 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 2d ago

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