<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal>Hi all,<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>I thought some of you might be interested to know that
TransGaming SwiftShader now features a back-end based on LLVM. SwiftShader is a
high-performance 3D software rendering toolkit (<a
href="http://transgaming.com/business/swiftshader/technology/">http://transgaming.com/business/swiftshader/technology/</a>).
It has recently been licensed by Adobe for the Flash Molehill 3D API (<a
href="http://labs.adobe.com/technologies/flash/molehill/">http://labs.adobe.com/technologies/flash/molehill/</a>).<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>That version doesn't use LLVM though; it uses the much
smaller and faster SwiftAsm back-end. However, the Direct3D 9 demo available
from the TransGaming website fully relies on LLVM for dynamic code generation.
You may be pleased to know that the generated code performs the same or faster
than hand-tuned dynamically generated assembly code. LLVM's optimization passes
have been indispensable to achieve exceptional Shader Model 3.0 performance. On
top of LLVM we're using another abstraction layer, called Reactor, which
defines a powerful high-level language.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>If you decide to try out the demo, make sure to check out
the SwiftConfig functionality. While running a Direct3D 9 application with
SwiftShader in windowed mode, you can interactively change its settings by
opening http://localhost:8080/swiftconfig in your browser. These settings
include some LLVM optimization passes that can be selected or reordered!<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>So finally you know what my secret vector intensive project was.
;-) I'd like to thank all LLVM developers for providing this incredibly versatile
compiler infrastructure, and I hope I'll be able to contribute some more myself
in the near future. If you have any questions about the use of LLVM in
SwiftShader, feel free to ask!<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Cheers,<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Nicolas Capens<o:p></o:p></p>

<p class=MsoNormal>Lead SwiftShader Developer<o:p></o:p></p>

<p class=MsoNormal>TransGaming Inc.<o:p></o:p></p>

</div>

</body>

</html>