[Ecls-list] SSE error in build

Alexander Gavrilov angavrilov at gmail.com
Sat Mar 5 18:26:38 UTC 2011


> On Wed, Mar 2, 2011 at 9:40 PM, Alexander Gavrilov <angavrilov at gmail.com>wrote:
> > As an alternative, if there is a way to fuse the constant with
> > the unboxing operation, the unboxed value can probably be represented
> > as an expression using a couple of C intrinsic functions.
> >
> 
> ... this might be a better solution. ECL currently provides various hooks
> for inlining functions. One I like quite much is the use of compiler macros.
> You could replace current sse compilations with compiler macros that inline
> the constants as C expressions.

I've implemented a c-inline based representation for SSE constants
(code inspired by the optimizable constants feature). The only downside
I see is that if the constant happens to actually be used in boxed form
(e.g. in a macro or something), it will likely be boxed every time
it is evaluated instead of once.

Patch attached, together with two other minor tweaks.

Alexander

P.S. When I was writing that static constant code I was still trying
     hard not to use the cast intrinsics. Now that I'm already using
     them, there is no point in avoiding them only for the constants.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Make-THE-actually-produce-the-warning-if-the-interse.patch
Type: text/x-patch
Size: 899 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20110305/21770a52/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Use-a-c-inline-transformation-to-represent-SSE-const.patch
Type: text/x-patch
Size: 1661 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20110305/21770a52/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-Add-errno.h-to-unixsys.d.patch
Type: text/x-patch
Size: 598 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20110305/21770a52/attachment-0002.bin>


More information about the ecl-devel mailing list