• Robert Bernecky's avatar
    · 2ea46bc7
    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