Performance anomaly in Livermore Loops when declarations are used
Bugzilla Link | 707 |
Created on | May 11, 2010 18:13 |
Version | svn |
OS | Linux |
Architecture | PC |
Extended Description
I've been running performance measurements of the Livermore Loops in sac. When I compiled loop10.sac, I got a gazillion complaints about: WARNING: Insufficient symbolic shape information available. Using explicit WARNING: information to split index operation. Looking at the code, we see in main(): rep = FibreScanInt( stdin ); n = FibreScanInt( stdin ); I looked at n and rep, and noted that they are not declared, but are passed to the Loop() function, where they are NOT referenced or set. In the spirit of cleaning things up, I tried some simple tests: (This is op counts, compiling with AWLF options on rbe's private code.) Original: 6715137927 n and rep removed from Loop() call: 7905664809 !! WORSE !! n and rep removed from Loop() call; "int rep; int n;" added to main(): 7850187292 slightly better When compiled with -O3... Original: loop10.sac.exe.O3.16831:MODIFIED.papiex.rattler.18553:PAPI_TOT_INS: 965058436 n and rep removed from Loop() call: loop10.sac.exe.O3.16831:MODIFIED.papiex.rattler.18633:PAPI_TOT_INS: 947804966 n and rep removed from Loop() call; "int rep; int n;" added to main(): loop10.sac.exe.O3.16831:MODIFIED.papiex.rattler.18753:PAPI_TOT_INS: 934451791 I do not understand what's going on here.