This is a work-in-progress; there will need to be new binaries
and similar changes for other architectures.
compiler/nx2.lisp: do late constant-folding on comparisons. (This depends
on being able to use operators for T and NIL in the backend; since backends
don't necessarily support that, check first.)
compiler/optimizers.lisp: bind temporaries for 3-arg numeric comparisons.
compiler/vinsn.lisp: do dead-code elimination at the vinsn level. Because
of the way that "aligned labels" work on x86, introduce an :align vinsn
attribute. Add/change some utilities for finding next/previous vinsn, etc.
compiler/X86/x862.lisp: Handle operators for T/NIL. Peephole optimize
things like (if (let ...)) where the LET returns a constant value and
we need to discard some words from the stack.
compiler/X86/X8632/x8632-arch.lisp:
compiler/X86/X8664/x8664-arch.lisp: Bump image version
compiler/X86/X8632/x8632-vinsns.lisp:
compiler/X86/X8664/x8664-vinsns.lisp: EMIT-ALIGNED-LABEL has :align
attribute
level-0/l0-hash.lisp: Don't assume that GC maintains weak-deletions; do
assume that it maintains count/deleted-count, so lock-based code adjusts
those slots atomically.
level-0/l0-misc.lisp: We don't want to use futexes (at least not instead
of spinlocks.)
level-0/X86/x86-misc.lisp: %ATOMIC-INCF-NODE needs to pause while spinning.
(Note that a locked ADD may be faster on x86, but wouldn't return a
meaningful value and some callers expect it to.)
level-1/l1-clos-boot.lisp: no more DESTRUCTURE-STATE.
level-1/l1-files.lisp: indentation change
level-1/l1-utils.lisp: no more DESTRUCTURE-STATE.
level-1/linux-files.lisp: UNSETENV
lib/hash.lisp: no need to %NORMALIZE-HASH-TABLE-COUNT.
lib/macros.lisp: no more DESTRUCTURE-STATE.
library/lispequ.lisp: no more DESTRUCTURE-STATE.
lisp-kernel/gc-common.c: decrement count when removing weak key from
hash vector; increment deleted-count if not lock-free.
lisp-kernel/x86-constants32.h:
lisp-kernel/x86-constants64.h: bump current, max image versions
lisp-kernel/linuxx8632/Makefile:
lisp-kernel/linuxx8664/Makefile: don't define USE_FUTEX.
|