MULTIPLE-VALUE-CALL not optimized

Bug #753803 reported by Nikodemus Siivola on 2011-04-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Medium
Unassigned

Bug Description

Python fails to detect cases where MULTIPLE-VALUE-CALL is exactly equivalent to FUNCALL:

 (disassemble (compile nil `(lambda (x y) (declare (single-float x y)) (+ x (multiple-value-call #'+ x y)))))

though it /does/ deal with the special case of a single VALUES argument:

 (disassemble (compile nil `(lambda (x y) (declare (single-float x y)) (+ x (multiple-value-call #'+ (values x y))))))

but even two is one too many:

 (disassemble (compile nil `(lambda (x y) (declare (single-float x y)) (+ x (multiple-value-call #'+ (values x) (values y))))))

tags: added: compiler optimization
Changed in sbcl:
importance: Undecided → Medium
status: New → Triaged
Stas Boukarev (stassats) wrote :

In 64364ae28bb06ba0f575dec717c0663673a3def3.

Changed in sbcl:
status: Triaged → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers