[Openmcl-devel] Effects of optimization settings

Osei Poku osei.poku at gmail.com
Mon Apr 6 21:55:29 PDT 2009


> There's http://trac.clozure.com/openmcl/wiki/DeclareOptimize but  
> that may be more than you really wanted to know.

Thanks.  That's exactly what I was looking for.

>
>
>> After playing with them for a while,
>> I'm not convinced that some settings have any effect (esp. (speed
>> 3)).  The output of disassemble looks exactly the same for the
>> following functions.
>>
>> (defun mathop (i j)
>>   (1+ (ash i j)))
>>
>> and..
>>
>> (defun mathop-fast (i j)
>>   (declare (optimize (speed 3) (safety 0) (debug 0)) (fixnum i j))
>>   (1+ (ash i j)))
>
> You have to tell the compiler that the results of those operations  
> will be fixnums as well (if you know that's going to be case, that  
> is).
>
> CCL> (defun mathop (i j)
>       (declare (optimize (speed 3) (safety 0)) (fixnum i j))
>       (the fixnum (1+ (the fixnum (ash i j)))))
> MATHOP
> CCL> (df *)
>  [0]     (recover-fn)
>  [5]     (pushl (% ebp))
>  [6]     (movl (% esp) (% ebp))
>  [8]     (pushl (% arg_y))
>  [9]     (pushl (% arg_z))
>  [10]    (movl (@ -4 (% ebp)) (% arg_y))
>  [13]    (movl (@ -8 (% ebp)) (% arg_z))
>  [16]    (calll (@ .SPBUILTIN-ASH))
>  [23]    (recover-fn)
>  [28]    (addl ($ 4) (% arg_z))
>  [31]    (leavel)
>  [32]    (retl)
>
>
>




More information about the Openmcl-devel mailing list