Add support for storing the symbol hash into a slot in the symbol
itself. Only for sparc currently. Doesn't lazily compute the symbol hash yet. Simple test shows a 5% increase in compilation speed, despite making make-symbol significantly slower. * src/code/hash-new.lisp (internal-sxhash): Use the symbol-hash slot instead of computing the hash value. * src/compiler/generic/new-genesis.lisp (allocate-symbol): Write out the sxhash value of the symbol into the symbol-hash slot. * src/compiler/globaldb.lisp (info-hash): Update to use the symbol hash instead of computing the sxhash. * src/code/symbol.lisp (make-symbol): Compute the symbol hash when creating the symbol. * src/compiler/sparc/cell.lisp ((symbol-hash)): Add vop to extract out the symbol hash from a symbol. * src/compiler/generic/objdef.lisp: Rename the unused slot to hash, so we can make it the symbol hash.
Showing
- code/hash-new.lisp 3 additions, 2 deletionscode/hash-new.lisp
- code/symbol.lisp 9 additions, 4 deletionscode/symbol.lisp
- compiler/generic/new-genesis.lisp 10 additions, 5 deletionscompiler/generic/new-genesis.lisp
- compiler/generic/objdef.lisp 8 additions, 7 deletionscompiler/generic/objdef.lisp
- compiler/globaldb.lisp 5 additions, 5 deletionscompiler/globaldb.lisp
- compiler/sparc/cell.lisp 13 additions, 1 deletioncompiler/sparc/cell.lisp
Loading
Please register or sign in to comment