diff --git a/compiler/srctran.lisp b/compiler/srctran.lisp index bbb69f9b20eadd5f14a740a2f88ae00b4f59853e..36f14806f69ea0eda905150a18780a78c17cc52d 100644 --- a/compiler/srctran.lisp +++ b/compiler/srctran.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/srctran.lisp,v 1.14 1990/09/25 10:22:43 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/srctran.lisp,v 1.15 1990/09/27 18:27:50 ram Exp $ ;;; ;;; This file contains macro-like source transformations which convert ;;; uses of certain functions into the canonical form desired within the @@ -1043,6 +1043,8 @@ ;;; constant then we put it second. If X is a subtype of Y, we put it ;;; second. These rules make it easier for the back end to match these ;;; interesting cases. +;;; -- If Y is a fixnum, then we quietly pass because the back end can handle +;;; that case, otherwise give an efficency note. ;;; (deftransform eql ((x y)) (let ((x-type (continuation-type x)) @@ -1064,6 +1066,8 @@ (and (csubtypep x-type y-type) (not (csubtypep y-type x-type))))) '(eql y x)) + ((csubtypep y-type (specifier-type 'fixnum)) + (give-up)) (t (give-up "Not enough type information to open-code.")))))