TC fails to deduce Livermore Loop loop11 argument and result ranks --> lousy perf
|
|
Bugzilla Link |
1062 |
Created on |
Apr 16, 2013 20:01 |
Resolution |
FIXED |
Resolved on |
Apr 18, 2013 17:04 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Attachments |
loop11.sac, loop11.inp
|
Extended Description
Created an attachment (id=964)
source code to reproduce fault.
This line in loop11.sac:
double[+] Loop11( int i, int n, double[+] Y)
causes the benchmark to run for eons. If I change it to this:
double[.] Loop11( int i, int n, double[.] Y)
it runs in a second or so. On the caller's side, the type of Yin is double[.].
The loop is NOT inlined, intentionally. However, I am somewhat gobsmacked
to see that sac2c does not infer the proper type for Y, since it has only
a single calling point.
sac2c -V
sac2c v1.00-beta (Haggis And Apple)
product rev 18092 linux-gnu_x86_64
(Tue Apr 16 14:29:19 EDT 2013 by sac)