LIR fails to lift loop-invariant N_arg used only in GENARRAY_DEFAULT
|
|
Bugzilla Link |
1151 |
Created on |
Apr 01, 2015 20:57 |
Version |
svn |
OS |
Linux |
Architecture |
PC |
Attachments |
buglur.sac |
Extended Description
Created an attachment (id=1034)
source code to cause failure
This failure causes a performance loss in the attached, because LIR fails to detect that a constant LOOPFUN argument is referenced only by
a WL GENARRAY_DEFAULT.
DLIR_WITH was traversing WITH_WITHOP, but it did not look at any
of its sons. I introduced DLIRgenarray, with a TRAVsons, which does
get us to DLIRid, where the offending variable is marked as
AVIS_SSALPIV, but it still does not get removed, so I am missing
something else. I'll check in this change in a day or so, unless
somebody is keen to look at the fault.