- Dec 10, 2008
-
-
agoncharov authored
-
rtoy authored
compile-time options to do this. The running core file has to tell us. lisp/save.c: o Add extra arg to save function to indicate whether the core we're saving supports sse2 or not. Non-zero means sse2. o Put the correct indication into the core file. lisp/save.h: o Update declaration of save. code/save.lisp: o Update alien definition for save o Pass in the extra parameter for the save routine to indicate if we support sse2 or not.
-
agoncharov authored
@ 05:15:45, I somehow missed this file. Checking it in now; the relevant part of the original comment is here: Config.FreeBSD_gencgc: Added SSE2 support and did general maintenance/reorganization while I was there.
-
rtoy authored
compiler warning in lisp.c that passes in fpu_mode_t*.
-
rtoy authored
x86-vm.lisp declares os_sigcontext_fpu_modes to return a 32-bit int.
-
agoncharov authored
cross build adds SSE2 but X87 stays there. So, pull it out here.
- Dec 09, 2008
-
-
rtoy authored
-
- Dec 07, 2008
-
-
rtoy authored
*USE-SLOT-TYPES-P* when checking the new value.
-
agoncharov authored
Added SSE2 support to `os_sigcontext_fpu_modes' and `restore_fpu' -- essentially fixing the trap handling. This includes changing the way FP state control and status words are combined in the returned value -- this is now in line with the way this return value is built on Linux and Darwin. Config.FreeBSD_gencgc: Added SSE2 support and did general maintenance/reorganization while I was there.
-
agoncharov authored
pointer will break strict-aliasing rules".
-
agoncharov authored
-
- Dec 05, 2008
-
-
rtoy authored
Don't set continuation-dest to continuation-next in FLUSH-DEAD-CODE when safety is 3. Just don't do anything. The generated code remains but doesn't deliver the result anywhere, but that's ok in SAFE mode.
-
- Dec 02, 2008
-
-
rtoy authored
This fixes the setf slot-value issue methods.lisp: o Add explicit type check to SETF-SLOT-VALUE-USING-CLASS-DFUN to check that the new value has the expected type for the slot. rt/slot-type.lisp: o Add test to make verify this.
-
rtoy authored
-
rtoy authored
don't have to if the C code truly didn't change, but this script can't tell that so always run build world twice.
-
rtoy authored
valid on Darwin because the sigcontext structure is no longer defined in Lisp, so we can't check this way anymore. Hence, remove the code to clean things up a bit.
-
- Nov 26, 2008
-
-
rtoy authored
o Remove the %ldb change in rev 1.164 to workaround in ticket #20. o Delay the logand optimizer so that it runs later. This allows type propagation a chance to converge before we run the logand optimizer. This fixes ticket #20 and #21. This may increase compilation time since the IR1 optimizations will run more often due to logand changes. general-info/release-19f.txt: o Update for modular arith fixes o Update ticket #15 since we have SSE2 now.
-
- Nov 24, 2008
-
-
rtoy authored
o Add -S option to create a source tarball. Call make-src-dist.sh to create the tarball. If "tar" is not GNU tar, set the environment variable GTAR to point to GNU tar. tools/make-src-dist.sh: o Create a tarball of the src directory, removing any CVS directories. This requires GNU tar.
-
rtoy authored
-
- Nov 16, 2008
-
-
rtoy authored
:complex-fp-vops is not defined.
-
- Nov 15, 2008
-
-
rtoy authored
runtime will always support SSE2.
-
- Nov 14, 2008
-
-
rtoy authored
o Remove the deftransform for real + complex and real * complex. o Always enable the transform for real - complex. x86/float-sse2.lisp: o Add vop to do real + complex o Add vop to do real * complex
-
rtoy authored
SSE2 support so that the binary will work with either. This means we can do the x87 and sse2 builds in either order. (I think).
-
rtoy authored
unpcklpD! o Document sse3 complex multiply.
-
- Nov 13, 2008
-
-
rtoy authored
o Change the other complex arithmetic deftransforms not to use REAL as the type of an argument. It should be the same as the complex argument. Without this, the deftransforms were causing infinite loops during compilation where the deftransforms kept changing the code.
-
rtoy authored
times faster.
-
rtoy authored
(defun foo (z) (declare (double-float z)) (+ (complex 0 1) z)) o For now, don't convert real*complex to complex*real. Expand it out explicitly.
-
- Nov 12, 2008
- Oct 24, 2008
-
-
rtoy authored
o Forgot to implement FLOAT-PRECISION for double-doubles. general-info/release-19f.txt: o Document it.
-
- Oct 22, 2008
-
-
rtoy authored
-
rtoy authored
-
rtoy authored
o Instead of a continuable error, use a restart to allow the user to continue the calculation with the option of updating the limit to the new power. Should we also increase the initial limit to something larger? Should we just eliminate this altogether? Or maybe allow the *intexp-maximum-exponent* to be nil to mean no limit at all?
-
rtoy authored
-
- Oct 21, 2008
-
-
rtoy authored
and *truncate-y*.
-
rtoy authored
*truncate-x* and *truncate-y*. Accessing these in tight loops hurts performance. So pass truncate-x and truncate-y as parameters to the routines that need them. Reorder the truncate support routines so we can block-compile all of the routines for truncate. With these changes, we see the following changes according to cl-bench. The first column and reference is 2008-10 snapshot (darwin), and the next column is the ratio of this new code to the reference. So we see improvements from 10% to 50%. BIGNUM/ELEM-100-1000 [ 0.23] 0.84 BIGNUM/ELEM-1000-100 [ 0.50] 0.89 BIGNUM/ELEM-10000-1 [ 0.51] 0.90 BIGNUM/PARI-100-10 [ 0.05] 0.63 BIGNUM/PARI-200-5 [ 0.22] 0.51 PI-DECIMAL/SMALL [ 2.44] 0.70 PI-DECIMAL/BIG [ 2.24] 0.73 PI-ATAN [ 1.07] 1.00 PI-RATIOS [ 2.56] 0.88
-
- Oct 08, 2008
-
-
rtoy authored
Take the rule of float precision contagion (CLHS 12.1.4.4) to also mean that the result should be as accurate as the most accurate argument. Effectively, all args are coerced to the highest precision first before computing expt. There's a simple test program to check that every case is covered with the expected precision. (I think). (defun test-expt () (dolist (base '(2 2f0 2d0 2w0) t) (dolist (power '(1/2 .5f0 .5d0 .5w0)) (flet ((test-it (b p a eps expected) (let* ((res (expt b p)) (absdiff (abs (- res a)))) (unless (or (typep (realpart res) (type-of expected)) (<= absdiff (* 10 eps))) (format t "FAILED: ~A^~A = ~A (~A)~%" b p res a))))) ;; Compute base^power. (let* ((expected-type (let ((prod (* base power))) (if (rationalp prod) 1f0 prod))) (eps (etypecase expected-type ((or rational single-float) single-float-epsilon) (double-float double-float-epsilon) (double-double-float 1w-31))) (answer (sqrt (float base expected-type)))) (test-it base power answer eps expected-type) (test-it base (complex power) answer eps expected-type) (test-it (complex base) power answer eps expected-type) (test-it (complex base) (complex power) eps answer expected-type))))))
-
- Oct 07, 2008
-
-
rtoy authored
needs to be revisited.)
-