status confirmed
tag optimization compiler
importance low
summary "CHECK-TYPE doesn't allow optimization in all cases?"
done
CHECK-TYPE and DECLARE are really quite different -- that is to be expected. That said, all is not as it should be. With just CHECK-TYPE I get among other things
; (- DIGIT-LENGTH-LIMIT (LENGTH QUOTIENT-PART))
;
; note: forced to do GENERIC-- (cost 10)
; unable to do inline fixnum arithmetic (cost 2) because:
; The first argument is a T, not a FIXNUM.
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES FIXNUM &REST T)
where the compiler should certainly be able to tell that the first argument is indeed a fixnum.
status confirmed
tag optimization compiler
importance low
summary "CHECK-TYPE doesn't allow optimization in all cases?"
done
CHECK-TYPE and DECLARE are really quite different -- that is to be expected. That said, all is not as it should be. With just CHECK-TYPE I get among other things
; (- DIGIT-LENGTH-LIMIT (LENGTH QUOTIENT-PART))
;
; note: forced to do GENERIC-- (cost 10)
; unable to do inline fixnum arithmetic (cost 2) because:
; The first argument is a T, not a FIXNUM.
; The result is a (VALUES NUMBER &OPTIONAL), not a (VALUES FIXNUM &REST T)
where the compiler should certainly be able to tell that the first argument is indeed a fixnum.
Haven't looked into why yet.