From: Nathan F. <fr...@cs...> - 2006-05-18 11:31:09
|
On Thu, May 18, 2006 at 01:02:49PM +0200, G=E1bor Melis wrote: > There is a similar patch (at the end of this mail:=20 > http://article.gmane.org/gmane.lisp.steel-bank.devel/6045 ) that I=20 > haven't committed because it produces slightly worse code in some cases= =20 > (at least on the x86, also in the mail). And it was a slight net loss=20 > on cl-bench. Interesting, thanks for pointing this out. I understand very little of that email thread because the mechanics of typing in IR1 are quite opaque to me. :) I did try your example: (defun xxx (x) (if (eq :something x) x ; modified as per Alexey's email 0)) on something that roughly corresponds to CVS HEAD and noticed that :SOMETHING was being loaded twice: ; 116065CD: 39056C656011 CMP [#x1160656C], EAX ; :SOMETHIN= G ; no-arg-pa= rsing entry point ; D3: 7510 JNE L1 ; D5: 8B156C656011 MOV EDX, [#x1160656C] ; :SOMETHIN= G ; DB: L0: 8D65F8 LEA ESP, [EBP-8] ; DE: F8 CLC ; DF: 8B6DFC MOV EBP, [EBP-4] ; E2: C20400 RET 4 ; E5: L1: 31D2 XOR EDX, EDX ; E7: EBF2 JMP L0 Curious, I tried the same thing on 0.9.10.41: ; 121E8395: 390534831E12 CMP [#x121E8334], EAX ; :SOMETHIN= G ; no-arg-pa= rsing entry point ; 9B: 750C JNE L1 ; 9D: 8BD0 MOV EDX, EAX ; 9F: L0: 8D65F8 LEA ESP, [EBP-8] ; A2: F8 CLC ; A3: 8B6DFC MOV EBP, [EBP-4] ; A6: C20400 RET 4 ; A9: L1: 31D2 XOR EDX, EDX ; AB: EBF2 JMP L0 And to see whether or not my changes caused this, 0.9.11.5: ; 115C4EED: 39058C4E5C11 CMP [#x115C4E8C], EAX ; :SOMETHIN= G ; no-arg-pa= rsing entry point ; EF3: 740C JEQ L1 ; EF5: 31D2 XOR EDX, EDX ; EF7: L0: 8D65F8 LEA ESP, [EBP-8] ; EFA: F8 CLC ; EFB: 8B6DFC MOV EBP, [EBP-4] ; EFE: C20400 RET 4 ; F01: L1: 8B158C4E5C11 MOV EDX, [#x115C4E8C] ; :SOMETHIN= G ; F07: EBEE JMP L0 FWIW, interesting. --=20 Nathan | From Man's effeminate slackness it begins. --Paradise Lost The last good thing written in C was Franz Schubert's Symphony Number 9. --Erwin Dieterich |