VariablePackage: compilerToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 8.2
This page is new in 8.2.

optimize-large-functions-switch

As with all compiler switch variables, the value of this variable can be t, nil, or a function object that accepts five arguments and returns t or nil. The arguments passed to the function will be the values of the safety, space, speed, debug, and compilation-speed optimization qualities, in that order. nil is equivalent to a function that always returns nil and t to a function that always returns t. When the value is a function and we say t (or true) or nil (or false) in the text below, we mean that the function returns, respectively, t or nil.

Bound to a function which, given safety, space, speed, debug, and compilation-speed returns t if the compiler should continue to provide high optimizations for functions which have grown to become very large. (Doing so might reduce compilation speed significantly.)

There is a definition of "very large", but we are not providing it here, as it may change and the measure requires a lot of explaining. If a function is not 'very large', its compilation is unaffected.

If compilation seems unexpectedly slow, try setting this switch to nil. If that significantly speeds things up, then some function or functions are "very large" when compiled and you can figure out which they are and how much you want to balance compilation speed and execution speed, using declarations which set the value of compilation-speed on a function by function basis to get the balance you want. (Functions which are not very large will compile the same regardless of the value of this switch.)

Initially true if compilation-speed is less than 2. It is important to keep in mind what the switch means: if true, take as long as necessary to compile. If nil, quit optimizing if the task takes too long (as indicated by the compiled function becoming too large).

See also internal-optimize-switch. See compiling.htm for information on the compiler.


Copyright (c) 1998-2012, Franz Inc. Oakland, CA., USA. All rights reserved.
Documentation for Allegro CL version 8.2. This page is new in the 8.2 release.
Created 2010.1.21.

ToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 8.2
This page is new in 8.2.