Lead Developers: Robert Bernecky

The Algebraic With-Loop Folding (AWLF) project extends the capability of the With-Loop Folding optimization to operate on AKD arrays. To do this, it has to perform symbolic analysis of WL bounds and array index sets and their intersections. AWLF enables -ecc, as that improves the analysis quality. As a fringe benefit, CF has been extended to remove, whenever feasible, guards that can be proven always satisfied, thereby improving run-time performance when compiling with -check c.

Current Status: Works on odd-numbered days. No support for non-unit stride; no support for non-unit width. Solving of the symbiotic expressions used for the above symbolic analysis is problematic in several ways. The primary problem is that there is no way to tell, at present, that an analysis is complete. This can lead to AWLF failure to operate, and/or to nugatory hypercube slicing.

Needed Work:

  • Extrema are not passed into LACFUNs, at present. This inhibits the quality of AWLF within LACFUNs and their sub-functions. Work is underway to fix this (rbe).
  • Extrema are not generated for FOR-loop induction variables. Work is underway to fix this (Artem). See sacdev email for 2012-03-14/15.
  • SAA passing of AVIS_DIM/SHAPE information into LACFUNs is non-optimal. In particular, two arrays with the same shape will have their shape information passed as two distinct N_id nodes, thereby losing the vital information about their shapes matching. Furthermore, if the shape(s) are represented outside the LACFUN as N_array nodes, that information is also lost. Both of these inhibit operation of AWLF in LACFUNs.
  • LIR is broken, as evidenced by Bug #870 and friends. This has a disasterous effect on performance of any code involving for-loops.