[Openmcl-devel] Effects of optimization settings
R. Matthew Emerson
rme at clozure.com
Mon Apr 6 21:17:19 PDT 2009
On Apr 6, 2009, at 11:37 PM, Osei Poku wrote:
> Hello,
>
> Are there any guidelines on the effects that the various optimization
> settings have on the compiler?
There's http://trac.clozure.com/openmcl/wiki/DeclareOptimize but that
may be more than you really wanted to know.
> 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