[<<][rtl][>>][..]
Sat May 18 10:19:07 EDT 2019

Next

So there is a representation that needs a couple more annotations
likely, but should be able to cover things.  Start generalizing it to
something that will perform elimination while allowing accumulator
reuse.

E.g. one thing is definitely the use of multi-dimensional accumulators

i:
  j:
    Aij <- Ai'j Bii
k:
  Dk <- Aik Ck

That might be the most basic example that is actually useful to figure
out how to optimize using only two optimizations:

intermediate elimination for:
- independent references
- accumulators

The first one is already implemented: a complete dimension can be
eliminated if the array is deemed intermediate.

The second can be done as an extension: if definition only uses
backreference and use only uses last, the dimension can be collapsed
into a single value.

Implementing the machinery for that will likely expose possibility to
generalize.



So.  In the example above, there is only the accumulation dimension
that can be eliminated.  How to write a matcher for that?



[Reply][About]
[<<][rtl][>>][..]