_nonnegval() needs to be smarter - buildv.sac
|
|
Bugzilla Link |
912 |
Created on |
Feb 15, 2012 22:06 |
Resolution |
FIXED |
Resolved on |
Feb 15, 2012 22:47 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Extended Description
Another cause of the APEX buildv.sac benchmark AWLF failure is this:
XX = _add_SxS_(
currentshape, iv);
XX', p = _non_neg_val_S_( XX);
XX has an AVIS_MIN, but it is not constant:
currentshape is the running result shape, which is growing by
catenation. So, it has AVIS_MIN of zero, which is good.
iv is the WL index vector, and it has an AVIS_MIN of zero,
which is also good.
Normally, the guard would be removed if AVIS_MIN(XX)<=0.
But, that value is not constant, so the guard is not removed, at present.
However, we CAN remove the guard, with this observation:
Assume we are looking for a constant AVIS_MIN(XX).
If M=AVIS_MIN(XX) is not constant, look at AVIS_MIN(M)
to see if it's constant. Iterate this until we no longer
have an AVIS_MIN or until we hit a constant.