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
newton.18.els.pdf
md5:8e5216f2e124b5a6f84dd02ea6123c67
621.8 kB Download
11
11
views
downloads
All versions This version
Views 1111
Downloads 1111
Data volume 6.8 MB6.8 MB
Unique views 99
Unique downloads 1010

Share

Cite as