Changes in directory llvm/docs:
GettingStarted.html updated: 1.141 -> 1.142 --- Log message: Update the example to work with llvm-gcc4. Fix validation errors. --- Diffs of the changes: (+87 -6) GettingStarted.html | 93 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 87 insertions(+), 6 deletions(-) Index: llvm/docs/GettingStarted.html diff -u llvm/docs/GettingStarted.html:1.141 llvm/docs/GettingStarted.html:1.142 --- llvm/docs/GettingStarted.html:1.141 Thu Aug 3 17:14:43 2006 +++ llvm/docs/GettingStarted.html Mon Aug 14 15:45:25 2006 @@ -305,17 +305,18 @@ <li><a name="pf_3">No native code generation</a></li> <li><a name="pf_4">Build is not complete: one or more tools don't link</a></li> <li><a name="pf_5">The GCC-based C/C++ frontend does not build</a></li> -<li><a name="pf_6">The port is done using the MSYS shell. +<li><a name="pf_6">The port is done using the MSYS shell.</a> <a href="http://www.mingw.org/MinGWiki/">Download</a> and install bison (excl. M4.exe) and flex in that order. Build binutils-2.15 from source, -if necessary. Bison & flex can be also grabbed from GNUWin32 sf.net project</li> +if necessary. Bison & flex can be also grabbed from GNUWin32 sf.net +project.</li> <li><a name="pf_7">Native code generation exists but is not complete.</a></li> -<li><a name="pf_8">Binutils up to post-2.17 has bug in bfd/cofflink.c +<li><a name="pf_8">Binutils</a> up to post-2.17 has bug in bfd/cofflink.c preventing LLVM from building correctly. Several workarounds have been introduced into LLVM build system, but the bug can occur anytime in the - future. It's highly recommended to rebuild your current binutils with the + future. We highly recommend that you rebuild your current binutils with the patch from <a href="http://sourceware.org/bugzilla/show_bug.cgi?id=2659"> - Binutils bugzilla</a>, if it's wasn't already applied. </a></li> + Binutils bugzilla</a>, if it wasn't already applied.</li> </ol> </div> @@ -1489,6 +1490,86 @@ <!-- *********************************************************************** --> <div class="doc_text"> +<p>This section gives an example of using LLVM. Since we are currently +transitioning from llvm-gcc3 to llvm-gcc4, we include examples for both. +</p> +</div> + +<!-- ======================================================================= --> +<div class="doc_subsection"><a name="tutorial3">Example with llvm-gcc4</a></div> + +<div class="doc_text"> + +<ol> + <li>First, create a simple C file, name it 'hello.c': + <pre> + #include <stdio.h> + int main() { + printf("hello world\n"); + return 0; + } + </pre></li> + + <li><p>Next, compile the C file into a native executable:</p> + + <p><tt>% llvm-gcc hello.c -o hello</tt></p> + + <p>Note that llvm-gcc works just like GCC by default. The standard -S and + -c arguments work as usual (producing a native .s or .o file, + respectively). </p> + + <li><p>Next, compile the C file into a LLVM bytecode file:</p> + <p><tt>% llvm-gcc -O3 -emit-llvm hello.c -c -o hello.bc</tt></p> + + <p>The -emit-llvm option can be used with the -S or -c options to emit an + LLVM ".ll" or ".bc" file (respectively) for the code. This allows you + to use the <a href="CommandGuide/index.html">standard LLVM tools</a> on + the bytecode file.</p> + + <p>Unlike llvm-gcc3, llvm-gcc4 correctly responds to -O[0123] arguments. + </p></li> + + <li><p>Run the program in both forms. To run the program, use:</p> + + <p><tt>% ./hello</tt></p> + + <p>and</p> + + <p><tt>% lli hello.bc</tt></p></li> + + <p>The second examples shows how to invoke the LLVM JIT, <a + href="CommandGuide/html/lli.html">lli</a>.</p> + + <li><p>Use the <tt>llvm-dis</tt> utility to take a look at the LLVM assembly + code:</p> + + <p><tt>% llvm-dis < hello.bc | less</tt><p></li> + + <li><p>Compile the program to native assembly using the LLC code + generator:</p> + + <p><tt>% llc hello.bc -o hello.s</tt></p> + + <li><p>Assemble the native assembly language file into a program:</p> + + <p><b>Solaris:</b><tt>% /opt/SUNWspro/bin/cc -xarch=v9 hello.s -o hello.native</tt></p> + <p><b>Others:</b><tt>% gcc hello.s -o hello.native</tt></p> + + <li><p>Execute the native code program:</p> + + <p><tt>% ./hello.native</tt></p></li> + + <p>Note that using llvm-gcc to compile directly to native code (i.e. when + the -emit-llvm option is not present) does steps 6/7/8 for you.</p> + +</ol> + +</div> + +<!-- ======================================================================= --> +<div class="doc_subsection"><a name="tutorial3">Example with llvm-gcc3</a></div> + +<div class="doc_text"> <ol> <li>First, create a simple C file, name it 'hello.c': @@ -1595,7 +1676,7 @@ <a href="mailto:[EMAIL PROTECTED]">Chris Lattner</a><br> <a href="http://llvm.x10sys.com/rspencer/">Reid Spencer</a><br> <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br> - Last modified: $Date: 2006/08/03 22:14:43 $ + Last modified: $Date: 2006/08/14 20:45:25 $ </address> </body> </html> _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits