[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gcl-devel] inline optimizer improvement
From: |
Camm Maguire |
Subject: |
[Gcl-devel] inline optimizer improvement |
Date: |
02 Sep 2004 18:29:24 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
Greetings! GCL can inline C code for certain functions in certain
circumstances. Some functions, notable #'+, #'*, #'<, etc. take an
arbitrary number or arguments, the call to which is equivalent to the
nested tree of two argument calls. Currently, GCL only optimizes an
actual two argument call, and I'd like to expand this to cover the
general case. I'm trying to decide on the cleanest way. I've written
a compiler-macro which modifies the code at the lisp level and which
works. Alternatively, I could add a flag to the optimization entry,
eg. of the form:
(push '((long-float long-float) long-float #.(flags
rfa)"(double)(#0)*(double)(#1)")
(get '* 'inline-always))
which indicates that it is an 'implicit nesting call', and iterate the
template above as a string. Of course, in the compiler-macro case,
only one expansion function needs defining for all the obvious
candidates.
Ideas?
Take care,
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gcl-devel] inline optimizer improvement,
Camm Maguire <=