1.0.31.20: smaller code for failing ECASE/ETYPECASE
authorNathan Froyd <froydnj@cs.rice.edu>
Sat, 26 Sep 2009 21:34:45 +0000 (21:34 +0000)
committerNathan Froyd <froydnj@cs.rice.edu>
Sat, 26 Sep 2009 21:34:45 +0000 (21:34 +0000)
commit8380b5ebecae80cb792805956e80c1fbbcba641f
tree898285cdf1c1b7bed3569f4c25d9fc2df4ded379
parent305c519d047b4d265a375cd930ce187db8385e5c
1.0.31.20: smaller code for failing ECASE/ETYPECASE

(ERROR 'CASE-FAILURE ...) generates a lot of code.  Commonize the code in
a CASE-FAILURE function and have the macros call that function instead.
This change results in fewer entries in the constant vector and smaller
code since fewer arguments have to be loaded.  This makes the error case
slightly slower, but that's not a problem.

Shrinks core size by ~160K on x86-64.
src/code/macros.lisp
src/code/target-error.lisp
src/compiler/fndb.lisp
version.lisp-expr