Significant performance loss in code containing LACFUNS after Loch Ness
Bugzilla Link | 705 |
Created on | May 06, 2010 17:27 |
Resolution | FIXED |
Resolved on | May 13, 2010 19:41 |
Version | svn |
OS | Linux |
Architecture | PC |
Attachments | xa.out, xxa.out, xxxa.out, apexperformance.ods, crud.noinnerloop.breaks.sac, crud.post, crud.pre, xcrud.post, xcrud.pre, crud.pre.b14cp, crud.post.b14cp, crud.me.after, a.out |
Extended Description
Created an attachment (id=692) source code to reproduce fault As discussed in an email sent to sacdev 2010-05-06, and in a subsequent sacdev meeting later that day, we discovered that a number of apex benchmarks suffered significant performance losses as a result of compiler changes made between Builds: pre-Loch Ness: sac2c_16543_sac_1208 post-Loch Ness: sac2c_16810_sac_1350 I conjectured that the cause was a failure of LIR to lift a WL from a LACFUN body into the calling function. Several changes were made to SSALIR.c in the timeframe above. In order to isolate the problem, I backed off SSALIR as follows and reran the apex/testforAKD/testforAKD.sac benchmark: svn update SSALIR.c -r16405 G SSALIR.c Updated to revision 16405. sac@rattler:~/sac2c/src/libsac2c/stdopt$ make No change in performance was observed (crud.sac reflects performance with the backed-off version of SSALIR.c.): testforAKD.sac.exe.O3.LochNess.16543.papiex.rattler.10437:PAPI_TOT_INS: 74503669 testforAKD.sac.exe.O3.PostLochNess.16810.papiex.rattler.16456:PAPI_TOT_INS: 456534574 crud.sac.exe.O3.PostLochNess.16810.papiex.rattler.21309:PAPI_TOT_INS: 456534609