next up previous
Next: Loop Optimizations Up: Simplification or optimization Previous: Bad optimizations

Can Bad be OK?

We can pursue this idea: Licensing Associativity: at compile time

If A*B/C can be evaluated in any order, or A+B+C can be evaluated in any order, then this can speed up matrix operations, and can be used to justify the decomposition of loops.

Rationale for rearrangements include: better memory access (cache hits), better use of pipelines (keeping two pipelines full by adding odds together and evens together).

Licensing evaluation precision: Widest, narrowest, fixed (e.g. double).

Licensing Fused MAC: Specifically: use it; use it if the compiler can figure out some way to do it; specifically don't use it.

Warning: Licenses must be done in the program text, not the command line.



Richard J. Fateman
Thu Aug 13 13:55:33 PDT 1998