Livermore Loop09 ast corrupted by EBT at end of -bopt
|
|
Bugzilla Link |
904 |
Created on |
Jan 17, 2012 16:53 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Attachments |
crud.sac |
Extended Description
Created an attachment (id=842)
source code to reproduce failure
sac2c -V
sac2c v1.00-beta (Haggis And Apple)
developer rev 17723 linux-gnu_x86_64
(Fri Jan 13 16:39:25 EST 2012 by sac)
sac@rattler:~/sac/demos/benchmarks/livermore_loops/for_comparison/loop09$ sac2c crud.sac -bopt:ebt -d treecheck -chkfreq 4 -v1 -nosaacyc -noive >crud
The failure mode is this:
If left to itself, things crash in: IVESLIdoIVESplitLoopInvariants,
with:
tree/infer_dfms.c:312 Assertion "N_avis == NODE_TYPE(avis)" failed!
avis expected
However, -bopt:ebt shows that the damage has occurred much earlier.
The bug appeared with the rewrite of vecmatmul, as follows:
inline double[N] vecmatmul( double[25] wts, double[N,25] PX)
{
colsx = shape(wts)[0];
colsy = shape(PX)[dim(PX)-1];
z = genarray([colsy], 0.0d);
for (colx=0; colx