-
Robert Bernecky authored
Mostly, changes for AWLF: 1. Inserted wlbscnf call before SAACYC 2. Implemented cube-slicing in AWLF. (Currently disabled, but code is there. The slicing is not performed properly in cases where the index vector axes are permuted or duplicated, such as in transpose (j,i) or major axis selection (i,i). 3. Killed FLATG before SAACYC. 4. Introduced PRFUNR extensions for extrema propagation, post-Loch Ness. We now unroll vector_based guards into scalar-based guards. 5. Made extrema N_avis sons, rather than attributes. This corrected a fair number of mystery crashes. 6. We now propagate extrema, minima and maxima, independently. 7. Insert SAA AVIS_SHAPE/DIM information within SAACYC now. Previously, this was performed only before SAACYC, and each optimization was responsible for maintaining SHAPE/DIM information itself. 8. Optimizer maintenance of SAA information (item 7) deleted with #ifdef statements, for the nonce, on the assumption that item 7 will do the job now. 9. Introduced CF optimizations for guards. 10. Introduced CF optimizations for extrema. 11. Introduced symbiotic expressions using sacprelude functions for AWLF intersect computations. 12. Moved stabilization cycle after SAACYC. Placement of this, and of traversals within SAACYC, should be vetted. 13. Introduced VP into SCYC to make IVESPLIT work again. 14. Introduced LS into SAACYC, to address Bug#697. See Bugs #709, #710. 15. Introduced scalar constraint/guard functions, for post-Loch Ness AWLF. 16. Fixed WLSIMP AVIS_SSAASSIGN bug. 17. IVE changed to flatten idx2offset and/or vect2offset nodes. This was required to make TC/CF, etc., at the end of phase 11 work properly. VP/CP at end of phase 11. 18. Added include for globals.h to prepare_inlining.c, to correct compilation error. Known problems: - Many rbe-induced warnings during compilation, which I will fix up soon. - LIR failure still causing severe performance losses. sah has this in hand. - AS failures cause AWLF to fail on relatively simple codes, e.g., gauss.sac in awlf test suite. Since AS no longer exists, this is not surprising. I will attempt its revival, since symbolic CF can not do the job unless operands are shuffled. - I am of the opinion that stdlib take() and perhaps drop() generate bad code for negative take counts. That causes sac/apex/UTThornBoolean/UTThornBoolean.sac to crash when compiled with -ecc, with an error message that is correct, but which requires the user to be able to read IL in order to isolate. - I would appreciate code review/inspection of any/all of these documents. In particular, anything labeled FIXME should be checked. - -check c will fail for some newly introduced scalar guards. There is something wrong memory/alloc.c for these guards, and the module does not offer any guidance on writing code for new primitives. - ct_prf.c: fails to completely typecheck some new guards, I think. Same problem as with -check c: no docn in code.
2ea46bc7