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
24
19
views
downloads
All versions This version
Views 2424
Downloads 1919
Data volume 11.8 MB11.8 MB
Unique views 2222
Unique downloads 1717

Share

Cite as