optimisation cycle on fundefs screwed up due to inconsistent LaC fun treatment
|
|
Bugzilla Link |
336 |
Created on |
Dec 12, 2006 19:08 |
Resolution |
FIXED |
Resolved on |
Feb 24, 2009 15:30 |
Version |
1.00beta |
OS |
Linux |
Architecture |
PC |
Attachments |
error.sac |
Extended Description
some opts do traverse LaC only in the context of the calling function
(e.g. the typechecker)
others just go ahead on ANY function (e.g. Constant Folding)
(as of rev 15124)
As a consequence, the actual order in which the optimisations are
applied varies between non-LaC funs and LaC funs.
This leads to "strange" behaviours such as crashes in CF although the
source for the crash seemingly disappears when breaking a subphase earlier.
the attached example demonstrates this nicely.
The solution for this problem is to enforce "top-level" function entries on
non-LaC functions only and to map those functions that do not follow all the
LaC funs to the static call graph of these....