sbcl Log


Commit Date  
[42fbc5] by Paul Khuong Paul Khuong

Bring OPTIMIZATIONS up to date

Some of these things were implemented months or a few years ago.

Also, fix the header for NEWS.

2011-08-31 13:05:16 Tree
[6d9945] by Lutz Euler Lutz Euler , pushed by Paul Khuong Paul Khuong

Microoptimization for code size in floating point comparisons on x86-64

This affects EQL on real and complex floats and "=" on floats when at
least one of the two arguments is complex.

Use a 32-bit register as the destination of the MOVMSKP[SD] and the
source of the integer comparison instead of a 64-bit one. This doesn't
change the semantics but makes both instruction's encodings shorter.
If the register is EAX do the comparison on AL as this additionally
shortens the encoding.

Before:

660F76C1 PCMPEQD XMM0, XMM1
480F50C0 MOVMSKPS RAX, XMM0
4883F80F CMP RAX, 15

After:

660F76C1 PCMPEQD XMM0, XMM1
0F50C0 MOVMSKPS EAX, XMM0
3C0F CMP AL, 15

2011-08-30 22:41:38 Tree
[5ba611] by Lutz Euler Lutz Euler , pushed by Paul Khuong Paul Khuong

Small cleanup to DEFINE-BYTE-BASHERS

Remove an unneeded SETF of the result of an INCF in a copy loop.
At least on x86[-64] this shortens the generated code in the byte
basher functions by removing a redundant move instruction.

2011-08-30 22:40:10 Tree
[c1e345] by Paul Khuong Paul Khuong

More complete disassembly for XADD and CMPXCHG on x86-64

The new patterns correctly handle REX bytes and operand size override
bytes (#x66).

2011-08-29 05:12:55 Tree
[bdf6c9] by Lutz Euler Lutz Euler , pushed by Paul Khuong Paul Khuong

Clean up some SSE instruction format definitions on x86-64

Remove the instruction formats for some SSE instructions with 8 bit
immediate data, instead make some other formats optionally have an
immediate field.

This makes it necessary to move the default printer definition for
these formats into the SSE shuffle instructions. They were the only
users of these formats that didn't have a printer defined anyway.

2011-08-29 05:12:49 Tree
[0af0ff] by Lutz Euler Lutz Euler , pushed by Paul Khuong Paul Khuong

More readable disassembler output for SSE shuffle instructions on x86-64

Output the immediate byte that contains the shuffle pattern in binary
or quaternary as appropriate with a suitable number of leading zeros.

For the shuffle instructions that use only part of the immediate byte
the assembler asserts that the rest is zero to help catch potential
wrong uses of these instructions.

2011-08-29 05:12:49 Tree
[922399] by Lutz Euler Lutz Euler , pushed by Paul Khuong Paul Khuong

Cleanup SSE instruction printers on x86-64

Use SSE-INST-PRINTER-LIST in all SSE instruction definitions to reduce
copy and paste programming. Reformat some overly long lines.

2011-08-29 05:12:49 Tree
[fa3d83] by Paul Khuong Paul Khuong

Update the library list on x86/darwin as well when zlib is enabled

2011-08-28 06:56:40 Tree
[af9b7c] by Paul Khuong Paul Khuong

Fix the build on some XCode/OS X version combo by forcing CC=gcc

It was already the case for x86-darwin.

2011-08-28 03:55:00 Tree
[77bb7c] by Paul Khuong Paul Khuong

Optionally mark pages from cores as de-duplicatable

Linux supports optimistic virtual-memory-level de-duplication for
identical pages. By default, only enable this for compressed cores.
Runtime options --[no-]merge-core-pages can be used to override the
default.

Very much experimental and a hack, but compressed cores would sometimes
be gratuitously inefficient otherwise. If/when support is generalized
to more OSes, figure out how to do this right.

Thanks to David Lichteblau for the idea.

2011-08-28 03:24:14 Tree
[797692] by Paul Khuong Paul Khuong

Optional support for zlib-based in-memory deflate/inflate for core files

* As this is based on zlib, only add the dependency when
:SB-CORE-COMPRESSION is enabled as a build-time feature. On x86-64,
compressed cores take about 1/4 the space, but start up in a few
tenths of a second.

Unlike gzexe'd executables, compressed images work without writing
to /tmp.

If :SB-CORE-COMPRESSION is enabled, trigger compression with the
:COMPRESSION argument to SAVE-LISP-AND-DIE.

* Also add a NEWS entry for the literal complex-single-float bugfix

2011-08-28 03:23:03 Tree
[76f788] by David Lichteblau David Lichteblau

Allow use of the --core option with embedded core files

Thanks to Anton Kovalenko for implementation suggestions.

2011-08-25 19:17:10 Tree
[e62bb3] by Nikodemus Siivola Nikodemus Siivola

test for multiply-interrupted sleeps

Make sure the time take by the interrupt is tallied
correctly.

2011-08-24 13:18:38 Tree
[afbad5] by Nikodemus Siivola Nikodemus Siivola

be more careful about ,@<constant-atom> and ,.<constant-atom>

Specifically, signal a read-time error for those things which COMMA
special-cases when constructing a splice.

Fixes lp#770184.

2011-08-24 13:18:37 Tree
[32c955] by Nikodemus Siivola Nikodemus Siivola

better errors for `(foo ,)

Report the trailing comma instead of an unmatched parenthesis.

2011-08-24 13:18:37 Tree
[c31d25] by Nikodemus Siivola Nikodemus Siivola

prettier reporting for SIMPLE-READER-ERRORs

Make the actual error message more prominent,
and the location information easier to read.

Also fixes an off-by-one in the location.

2011-08-24 13:18:37 Tree
[6d3e70] by Joshua Elsasser Joshua Elsasser

Create a dummy test-status.lisp-expr when running shell tests.

The test-status.lisp-expr file isn't used for shell tests, but the
impure runner doesn't know that and tries to read it
anyway. Initialize the file before running shell tests to avoid
reporting failures from the last test run, or failing entirely if it
doesn't exist.

2011-08-24 04:31:07 Tree
[3a5eea] by Paul Khuong Paul Khuong

Ensure correct alignment for complex single-float literals

Only an issue on x86-64: literal complex single-float values used
directly as operands to SIMD instructions were not correctly aligned
and extended. Completion typo fixed.

Test added.

Remove misleading comments in negate/conjugate/abs float VOPs while
we're at it.

Reported by Eric Marsden on sbcl-devel.

Fixes lp#832005.

2011-08-23 19:01:35 Tree
[1d8fbf] by Paul Khuong Paul Khuong

Fix a typo in NANOSLEEP

Missing pluralization in the #!+darwin code path.

2011-08-23 18:59:41 Tree
[66846b] by Nikodemus Siivola Nikodemus Siivola

disable unsychronized-hash-table test for now

Intermittently causing my laptop to swap instead of terminating with
an error.

2011-08-23 17:30:44 Tree
[70a168] by Nikodemus Siivola Nikodemus Siivola

optimize pretty-printing strings and bit-vectors

Since strings and bit-vectors use the ugly output in any case,
exlude them from using PPRINT-ARRAY -- so we don't need to cons up a
pretty stream when printing strings while *PRINT-PRETTY* is true.

2011-08-23 17:30:44 Tree
[9ae34b] by Nikodemus Siivola Nikodemus Siivola

oops, fix recent NANOSLEEP change

If the sleep gets interrupted multiple times on Darwin:
update SECS and NSECS each round.

2011-08-23 12:17:37 Tree
[d64868] by Nikodemus Siivola Nikodemus Siivola

NEWS for 5 last commits

2011-08-22 11:19:39 Tree
[09bce6] by Nikodemus Siivola Nikodemus Siivola

update to ASDF 2.017

2011-08-22 11:17:38 Tree
[aa29ec] by Nikodemus Siivola Nikodemus Siivola

ignore non-function FTYPEs

Fixes lp#738464.

Give a style-warning and ignore the bad type.

2011-08-22 11:17:38 Tree
Older >