Conference paper Open Access

Strategies for typecase optimization

Newton, Jim; Verna, Didier

We contrast two approaches to optimizing the Common Lisp typecase
macro expansion. The first approach is based on heuristics intended
to estimate run time performance of certain type checks involving
Common Lisp type specifiers.  The technique may, depending on code size,
exhaustively search the space of permutations of the type checks,
intent on finding the optimal order.  With the second technique, we
represent a typecase form as a type specifier,
encapsulating the side-effecting non-Boolean parts so as to appear
compatible with the Common Lisp type algebra operators.  The encapsulated
expressions are specially handled so that the \cl type algebra
functions preserve them, and we can unwrap them after a process of Boolean
reduction into efficient \cl code, maintaining the appropriate side
effects but eliminating unnecessary type checks.  Both approaches allow us
to identify unreachable code, test for exhaustiveness of the
clauses and eliminate type checks which are calculated to be redundant.


Files (621.8 kB)
Name Size
621.8 kB Download
All versions This version
Views 1111
Downloads 1111
Data volume 6.8 MB6.8 MB
Unique views 99
Unique downloads 1010


Cite as