[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sbcl-devel
Subject:    Re: [Sbcl-devel] Documentation for VOPs
From:       Gautam Goel <gautamcgoel () gmail ! com>
Date:       2014-08-17 4:28:00
Message-ID: CAPVxwbqna9LMemxvuoh9QEhL4bKt4y4hi0qmAikGkE6tOCeqMg () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Wow, thanks a ton! That really helped.


On Sat, Aug 16, 2014 at 11:07 PM, Paul Khuong <pvk@pvk.ca> wrote:

> Gautam Goel wrote:
>
>> I'm trying to figure what's going on in this blogpost on SSE intrinsics
>> in SBCL:
>>
>> http://www.pvk.ca/Blog/2013/06/05/fresh-in-sbcl-1-dot-1-8-sse-intrinsics/
>>
>> The author, Dr. Khuong, uses VOPs a lot to tell SBCL how to use the SIMD
>> instructions. But I haven't been able to find much info how one goes
>> about using VOPs in SBCL. Is there any documentation on VOPs available
>> online? I'm particularly interested in understanding all the possible
>> keyword parameters to define-vop.
>>
>
> The first step should be to M-. on define-vop.  That'll lead you to a form
> in src/compiler/meta-vmdef.lisp preceded by a detailed comment block:
>
> ;;; Define the symbol NAME to be a Virtual OPeration in the compiler.
> ;;; If specified, INHERITS is the name of a VOP that we default
> ;;; unspecified information from. Each SPEC is a list beginning with a
> ;;; keyword indicating the interpretation of the other forms in the
> ;;; SPEC:
> ;;;
> ;;; :ARGS {(Name {Key Value}*)}*
> ;;; :RESULTS {(Name {Key Value}*)}*
> [...]
>
> Alastair Bridgewater documented lifetime specs, a feature with
> spectacularly scalable hairiness, in http://www.lisphacker.com/
> codex/001-sbcl-vops.txt (the server seems to be down for the moment).
>
> For simple use cases, I think http://pvk.ca/Blog/2014/08/16/
> how-to-define-new-intrinsics-in-sbcl/ covers (barely) enough to get going
> and move on to using VOPs in interesting code.
>
> Paul Khuong
>



-- 
Cheers,

Gautam C. Goel

[Attachment #5 (text/html)]

<div dir="ltr">Wow, thanks a ton! That really helped.</div><div \
class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Aug 16, 2014 at 11:07 \
PM, Paul Khuong <span dir="ltr">&lt;<a href="mailto:pvk@pvk.ca" \
target="_blank">pvk@pvk.ca</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><div class="">Gautam Goel wrote:<br> <blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"> I&#39;m trying to figure what&#39;s going on in this \
blogpost on SSE intrinsics<br> in SBCL:<br>
<br>
<a href="http://www.pvk.ca/Blog/2013/06/05/fresh-in-sbcl-1-dot-1-8-sse-intrinsics/" \
target="_blank">http://www.pvk.ca/Blog/2013/<u></u>06/05/fresh-in-sbcl-1-dot-1-8-<u></u>sse-intrinsics/</a><br>
 <br>
The author, Dr. Khuong, uses VOPs a lot to tell SBCL how to use the SIMD<br>
instructions. But I haven&#39;t been able to find much info how one goes<br>
about using VOPs in SBCL. Is there any documentation on VOPs available<br>
online? I&#39;m particularly interested in understanding all the possible<br>
keyword parameters to define-vop.<br>
</blockquote>
<br></div>
The first step should be to M-. on define-vop.   That&#39;ll lead you to a form in \
src/compiler/meta-vmdef.lisp preceded by a detailed comment block:<br> <br>
;;; Define the symbol NAME to be a Virtual OPeration in the compiler.<br>
;;; If specified, INHERITS is the name of a VOP that we default<br>
;;; unspecified information from. Each SPEC is a list beginning with a<br>
;;; keyword indicating the interpretation of the other forms in the<br>
;;; SPEC:<br>
;;;<br>
;;; :ARGS {(Name {Key Value}*)}*<br>
;;; :RESULTS {(Name {Key Value}*)}*<br>
[...]<br>
<br>
Alastair Bridgewater documented lifetime specs, a feature with spectacularly scalable \
hairiness, in <a href="http://www.lisphacker.com/codex/001-sbcl-vops.txt" \
target="_blank">http://www.lisphacker.com/<u></u>codex/001-sbcl-vops.txt</a> (the \
server seems to be down for the moment).<br>


<br>
For simple use cases, I think <a \
href="http://pvk.ca/Blog/2014/08/16/how-to-define-new-intrinsics-in-sbcl/" \
target="_blank">http://pvk.ca/Blog/2014/08/16/<u></u>how-to-define-new-intrinsics-<u></u>in-sbcl/</a> \
covers (barely) enough to get going and move on to using VOPs in interesting \
code.<span class="HOEnZb"><font color="#888888"><br>


<br>
Paul Khuong<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- \
<br>Cheers,<br><br>Gautam C. Goel </div>



------------------------------------------------------------------------------


_______________________________________________
Sbcl-devel mailing list
Sbcl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic