Why does elim_alpha_types look at LHS in EATarray?
|
|
Bugzilla Link |
549 |
Created on |
Aug 08, 2009 20:11 |
Resolution |
FIXED |
Resolved on |
Nov 23, 2009 17:03 |
Version |
1.00beta |
OS |
Linux |
Architecture |
PC |
Extended Description
This may not even be a bug, but it's stopping my phase 12 changes
from working.
I get into Phase 12 and this happens:
** 12: Transforming with-loop representation ...
**** Converting from SSA form ...
**** Reintroducing loops and conditionals ...
**** Inlining LaC functions ...
**** Applying type upgrade ...
**** Eliminating type variables ...
ASSERTION FAILED: file 'constants/shape.c', line 476
dropping more elems from shape than available!
The call is from EATarray, which looks at LHS (ive_split_909)
to get an ntype for the result of [2]?!!
This would make sense if we were doing:
_ivesplit_909 = [ 2 ];
but we are doing this:
_ivesplit_909 = _idxs2offset_( [ 2 ], 0);
I suspect that EATprf should hide the LHS value before proceeding
to look at its arguments, but since EATprf does not exist, this is difficult.
If I knew what an "alpha type" was, I might try changing this,
but I think I'll call for help now.
No failing code example, because none of this stuff is checked in,
so it won't help you. However, the sacprelude make breaks nicely.