Skip to content
Snippets Groups Projects
Commit cb674c89 authored by rtoy's avatar rtoy
Browse files

This big of code causes CMUCL to spend huge amounts of time trying to

simplify the union of disjoint double-float types:

(defun foo (arg)
  (declare (type double-double-float arg)
	   (optimize (speed 3) (space 0)))
  (let* ((x arg)
	 (xx 0w0)
	 (k 0)
	 (px (coerce k 'double-double-float))
	 (qx 0w0))
    (declare (type double-double-float x xx px qx)
	     (notinline poly-eval poly-eval-1))
    (setf x (- (- x (* px log2-c1)) (* px log2-c2)))
    (+ x 0d0)
    ))

Fix it:

code/type.lisp:
o Rename SIMPLIFY-BIG-INTEGER-UNION to SIMPLIFY-BIG-UNION
o SIMPLIFY-BIG-UNION takes an extra arg to specify the resulting type.
o Modify SIMPLIFY-UNIONS to handle float unions as well as integer
  unions.

general-info/release-20a.txt:
o Update
parent 8bd5d96d
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment