ESD goes wild: about 4000 (!) variables holding the same value!
Bugzilla Link | 516 |
Created on | Jun 24, 2009 09:28 |
Resolution | FIXED |
Resolved on | Jun 26, 2009 14:24 |
Version | 1.00beta |
OS | Linux |
Architecture | PC |
Attachments | bob.sac |
Extended Description
Created an attachment (id=545) source code revision 16146. Run sac2c -b11:cyc. Look at function ArrayTransform::_dup_1167_rotate__Cond_48 It starts in line 7879. Then we have declarations { int _esd_12471 { } ; int _esd_12470 { } ; int _esd_12469 { } ; int _esd_12468 { } ; int _esd_12467 { } ; int _esd_12466 { } ; int _esd_12465 { } ; int _esd_12464 { } ; .... until line 11460(!) followed by "normal declarations. A bit later (line 11641) we find _esd_12471 = _sub_SxS_( 0, _cf_2755_iv); _esd_7735 = _sub_SxS_( 0, _cf_2755_iv); _esd_12470 = _sub_SxS_( 0, _cf_2755_iv); _esd_5367 = _sub_SxS_( 0, _cf_2755_iv); _esd_12469 = _sub_SxS_( 0, _cf_2755_iv); _esd_7734 = _sub_SxS_( 0, _cf_2755_iv); _esd_12468 = _sub_SxS_( 0, _cf_2755_iv); _esd_4183 = _sub_SxS_( 0, _cf_2755_iv); .... until line 14781(!!!!) we see further situations of similar code explosions further down. I believe to remember that there was a known issue with esd and I assume it might only be a matter of running the right sequence (eg CSE should do) BUT I think that such an explosion needs to be controlled!!!
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information