Optimization phase pessimizes
Bugzilla Link | 482 |
Created on | Apr 17, 2009 17:51 |
Version | 1.00beta |
OS | Linux |
Architecture | PC |
Extended Description
prd.sac is a simple benchmark that essentially does +/⍳n. If I compile sac/apex/prd.sac with -dowlf, I get this fold-WL as the inner loop in main(): _pinl_773__z = with { ([ 0 ] <= _pinl_769__iv=[_pinl_774___eat_64] < [ 10000000 ]) { _pinl_775___ea_466_z = _accu_( _pinl_769__iv); _al_1542 = _sub_SxS_( _pinl_775___ea_466_z, _pinl_774___eat_64); _al_1543 = _add_SxS_( 9999999, _al_1542); } : _al_1543 ; } : fold( _MAIN::plusIII, _isaa_1569__rso_56_TheWorld); But, if I compile it with -nowlf -doswlf, I get this: _pinl_773__z = with { ([ 0 ] <= _pinl_769__iv=[_pinl_774___eat_64] < [ 10000000 ]) { _pinl_775___ea_466_z = _accu_( _pinl_769__iv); _pinl_784_____flat_69 = _add_SxS_( _pinl_775___ea_466_z, _pinl_774___eat_64); } : _pinl_784_____flat_69 ; } : fold( _MAIN::plusIII, _isaa_1556__rso_56_TheWorld); Note that the first example has an _sub_SxS_ in it? I have not had time to look into where it's being introduced, except that it's in b11:cyc.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information