LIR fails to lift loop-invariant N_arg used only in GENARRAY_DEFAULT
|Created on||Apr 01, 2015 20:57|
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.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information