With this technique, procedures are split into two parts, the main part (predicted to be executed frequently), and the "fluff" (code such as error recovery that is predicted to be executed infrequently). The fluff for several procedures is collected into one special procedure; special precautions are taken to avoid the usual procedure invocation overhead.

The idea is to keep as many of the hot parts of procedures in the machine's instruction cache, and to keep the cold code away from that cache. Ideally, the cold code will never even be paged into memory, and the machine's cache contains most of the hot code.

-- MikeVanEmmerik - 01 Dec 2001

Revision: r1.1 - 01 Dec 2001 - 14:01 - MikeVanEmmerik
Transform > ProgramOptimization > ProcedureSplitting
Copyright © 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback