<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.16.1">
</HEAD>
<BODY>
On Sat, 2008-05-10 at 19:42 +1000, kr512 wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">On that page, you can see that sqlite.org provides a </FONT>
<FONT COLOR="#000000">precompiled sqlite DLL for MS Windows.  That is great, </FONT>
<FONT COLOR="#000000">because it means that a developer can simply grab the </FONT>
<FONT COLOR="#000000">compiled DLL, and start using it, incorporating it into </FONT>
<FONT COLOR="#000000">their project, without having to go through all of the </FONT>
<FONT COLOR="#000000">difficulty of compiling SQLite (or LLVM) themselves, and </FONT>
<FONT COLOR="#000000">without having to make their program awkwardly invoke the </FONT>
<FONT COLOR="#000000">LLVM command-line tools.</FONT>
</PRE>
</BLOCKQUOTE>
<BR>
Apparently the APIs in the LLVM docs missed your attention.  They're sneaky that way because, you know, they just form the bulk of available documentation.<BR>
<BR>
The command-line tools are convenience wrappers around the APIs, not the other way around.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">Furthermore, an LLVM DLL should go "all the way".   Your </FONT>
<FONT COLOR="#000000">"llc" tool is supposed to be a back-end tool, but it is more </FONT>
<FONT COLOR="#000000">like an almost-back-end tool, because it generates assembly </FONT>
<FONT COLOR="#000000">language to a text file, rather than a native code </FONT>
<FONT COLOR="#000000">executable program file.</FONT>
</PRE>
</BLOCKQUOTE>
<PRE>

</PRE>
I'm sure the LLVM lead (Chris, was it?) will gratefully accept any such functioning, tested code you can supply that generates the native object format you prefer.  This is, after all, how open source projects work for the most part.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">So we need a precompiled LLVM DLL that can be invoked, </FONT>
<FONT COLOR="#000000">passing in LLVM bytecode, and it should generate a native </FONT>
<FONT COLOR="#000000">code ready-to-execute MS Windows .EXE or .DLL file.   This </FONT>
<FONT COLOR="#000000">would make it more practical to use in a real-world </FONT>
<FONT COLOR="#000000">situation.</FONT>
</PRE>
</BLOCKQUOTE>
<BR>
So... here's a thought.  Why don't you do that one-time work and host the compiled package up on a web page somewhere as a service to this open source community that will so eagerly embrace it?  You will certainly not be criticized for it and will likely instead have your name sung to the heavens by the myriad of Windows developers who've wanted to use LLVM but haven't had the opportunity because of the barrier of source code distribution.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">GCC needs to be cut out of the back-end picture.  Currently, </FONT>
<FONT COLOR="#000000">it is impossible to use LLVM as a back-end without GCC </FONT>
<FONT COLOR="#000000">because GCC is still required to convert the assembly </FONT>
<FONT COLOR="#000000">language .S text file into a native machine code .EXE or </FONT>
<FONT COLOR="#000000">.DLL file.</FONT>
</PRE>
</BLOCKQUOTE>
<BR>
So... your world doesn't include "gas" or "nasm" or any other such assembler?  You know.  The "gas" that GCC itself uses to assemble the .S files?  The "nasm" that's freely available on a bewildering variety of native platforms?  That's a mighty strange world to be living in, pardner.<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">A back-end that is totally free of GCC is needed.</FONT>
</PRE>
</BLOCKQUOTE>
<BR>
Again I'm sure that Chris (?) will gladly accept any functioning, tested source that implements this tossed into the pot that is the open source project LLVM.<BR>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
-- <BR>
<B>Michael T. Richter</B> <<A HREF="mailto:ttmrichter@gmail.com">ttmrichter@gmail.com</A>> (<B>GoogleTalk:</B> ttmrichter@gmail.com)<BR>
<I>So much of what we call management consists in making it difficult for people to work. (Peter Drucker)</I>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>