From 9afd3958cf7b5ad829c61a4a85956cf783e500f5 Mon Sep 17 00:00:00 2001 From: "Paul F. Dietz" Date: Wed, 9 Feb 2005 23:48:45 +0000 Subject: [PATCH] Added optimization opportunity #25: improved type-based optimization of EQL forms. --- OPTIMIZATIONS | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index 5474bd2..50d3417 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -203,3 +203,17 @@ Python does not know that &REST lists are LISTs (and cannot derive it). a. Iterations on &REST lists, returning them as VALUES could be rewritten with &MORE vectors. b. Implement local unknown-values mv-call (useful for fast type checking). +-------------------------------------------------------------------------------- +#25 +EQL is implemented generically in situations where this isn't necessary. + +(defun f (x y) + (declare (type (or symbol fixnum) x) + (optimize speed (safety 0) (debug 0))) + (eql x y)) + +SUBTYPEP is smart enough to determine that this type is a subtype +of (and (or (not number) fixnum) (not character)) + +This sitation where the type is (OR NULL FIXNUM) comes up +in cl-bench, for example in the value returned by POSITION. -- 1.7.10.4