On Jan 4, 2022, at 9:31 AM, Sven Hartrumpf hartrumpf@gmx.net wrote:
Too large, will try that with a smaller program.
This might point to an optimization you need to turn off to get the same result as v4.9.3 . The drop from 7178 to 6248 “reachable” procedures may simply be better inlining by the v4.9.4 compiler. Turning off inlining with a (declare (not inline)) may be all that is needed.
Just reading through the list of 930 definitions (7178-6248) may give you a clue if they have common characteristic (small? or from the same “module”?) or unusual properties (defined more than once?).
It could be the case that there is a single definition that is causing 929 others to be considered dead by v4.9.4 . For example your code may be calling a “print-report” procedure, and the implementation of print-report uses 929 procedures that are not used elsewhere than the implementation of print-report. If the v4.9.4 optimizer is smart enough to figure out that print-report is not actually needed, then that causes a difference of 930 dead procedures.
Marc