Activity log for bug #676414

Date Who What changed Old value New value Message
2010-11-17 09:18:10 Heka Treep bug added bug
2010-11-17 09:19:19 Heka Treep description Currently, Python does not reduce the constants in expressions such as: (+ 3 a 5 b 7 c) For fixnums this gives: ; A7: 83C203 ADD EDX, 3 ; AA: 83C205 ADD EDX, 5 ; AD: C1FF02 SAR EDI, 2 ; B0: 01FA ADD EDX, EDI ; B2: 83C207 ADD EDX, 7 ; B5: C1FE02 SAR ESI, 2 ; B8: 8D0432 LEA EAX, [EDX+ESI] ; BB: 6BD004 IMUL EDX, EAX, 4 ; BE: 7107 JNO L0 ; C0: 8BD0 MOV EDX, EAX and for generic numbers this generate five calls to GENERIC-+. It would be nice to collect all numbers at compile-time, doing the following transformation: (+ 3 a 5 b 7 c) -> (+ 15 a b c) schematically: (+ list) -> `(+ ,(fold-left '+ identity (filter const-p list)) ,@(filter not-const-p list)) Currently, Python does not reduce the constants in expressions such as:   (+ 3 a 5 b 7 c) For fixnums this gives:   ; A7: 83C203 ADD EDX, 3   ; AA: 83C205 ADD EDX, 5   ; AD: C1FF02 SAR EDI, 2   ; B0: 01FA ADD EDX, EDI   ; B2: 83C207 ADD EDX, 7   ; B5: C1FE02 SAR ESI, 2   ; B8: 8D0432 LEA EAX, [EDX+ESI]   ; BB: 6BD004 IMUL EDX, EAX, 4   ; BE: 7107 JNO L0   ; C0: 8BD0 MOV EDX, EAX and for generic numbers this generate five calls to GENERIC-+. It would be nice to collect all numbers at compile-time, doing the following transformation:   (+ 3 a 5 b 7 c) -> (+ 15 a b c) schematically:   (+ list) -> `(+ ,(fold-left '+ identity (filter const-p list)) ,@(filter not-const-p list))
2010-11-17 09:31:47 Heka Treep attachment added 0001-Constant-folding-in-arithmetic-functions.patch https://bugs.launchpad.net/sbcl/+bug/676414/+attachment/1736084/+files/0001-Constant-folding-in-arithmetic-functions.patch
2010-11-18 14:51:31 Nikodemus Siivola sbcl: importance Undecided Wishlist
2010-11-18 14:51:31 Nikodemus Siivola sbcl: status New Triaged
2010-11-18 14:51:48 Nikodemus Siivola tags compiler optimization compiler optimization review
2010-11-18 14:51:55 Nikodemus Siivola sbcl: assignee Nikodemus Siivola (nikodemus)
2011-02-12 13:16:23 Nikodemus Siivola tags compiler optimization review compiler optimization
2011-02-12 13:16:38 Nikodemus Siivola sbcl: status Triaged In Progress
2011-02-12 15:46:11 Nikodemus Siivola sbcl: status In Progress Fix Committed
2011-02-12 15:46:11 Nikodemus Siivola sbcl: assignee Nikodemus Siivola (nikodemus)
2011-02-20 09:58:52 Nikodemus Siivola sbcl: status Fix Committed Fix Released