adjust calls to ConstantFP::get to new API
[oota-llvm.git] / docs / GettingStarted.html
index 3327df160c62a188a7dcc08c6eda5765166a811a..eed4547a7818ef78de98eef2c66f921590e77727 100644 (file)
   <li><a href="#quickstart">Getting Started Quickly (A Summary)</a>
   <li><a href="#requirements">Requirements</a>
     <ol>
-      <li><a href="#hardware">Hardware</a>
-      <li><a href="#software">Software</a>
-      <li><a href="#brokengcc">Broken versions of GCC and other tools</a>
+      <li><a href="#hardware">Hardware</a></li>
+      <li><a href="#software">Software</a></li>
+      <li><a href="#brokengcc">Broken versions of GCC and other tools</a></li>
     </ol></li>
 
   <li><a href="#starting">Getting Started with LLVM</a>
     <ol>
-      <li><a href="#terminology">Terminology and Notation</a>
-      <li><a href="#environment">Setting Up Your Environment</a>
-      <li><a href="#unpack">Unpacking the LLVM Archives</a>
-      <li><a href="#checkout">Checkout LLVM from Subversion</a>
-      <li><a href="#installcf">Install the GCC Front End</a>
-      <li><a href="#config">Local LLVM Configuration</a>
-      <li><a href="#compile">Compiling the LLVM Suite Source Code</a>
-      <li><a href="#cross-compile">Cross-Compiling LLVM</a>
-      <li><a href="#objfiles">The Location of LLVM Object Files</a>
-      <li><a href="#optionalconfig">Optional Configuration Items</a>
+      <li><a href="#terminology">Terminology and Notation</a></li>
+      <li><a href="#environment">Setting Up Your Environment</a></li>
+      <li><a href="#unpack">Unpacking the LLVM Archives</a></li>
+      <li><a href="#checkout">Checkout LLVM from Subversion</a></li>
+      <li><a href="#installcf">Install the GCC Front End</a></li>
+      <li><a href="#config">Local LLVM Configuration</a></li>
+      <li><a href="#compile">Compiling the LLVM Suite Source Code</a></li>
+      <li><a href="#cross-compile">Cross-Compiling LLVM</a></li>
+      <li><a href="#objfiles">The Location of LLVM Object Files</a></li>
+      <li><a href="#optionalconfig">Optional Configuration Items</a></li>
     </ol></li>
 
   <li><a href="#layout">Program layout</a>
     <ol>
-      <li><a href="#examples"><tt>llvm/examples</tt></a>
-      <li><a href="#include"><tt>llvm/include</tt></a>
-      <li><a href="#lib"><tt>llvm/lib</tt></a>
-      <li><a href="#projects"><tt>llvm/projects</tt></a>
-      <li><a href="#runtime"><tt>llvm/runtime</tt></a>  
-      <li><a href="#test"><tt>llvm/test</tt></a>
-      <li><a href="#llvmtest"><tt>llvm-test</tt></a>
-      <li><a href="#tools"><tt>llvm/tools</tt></a>  
-      <li><a href="#utils"><tt>llvm/utils</tt></a>
-      <li><a href="#win32"><tt>llvm/win32</tt></a>
+      <li><a href="#examples"><tt>llvm/examples</tt></a></li>
+      <li><a href="#include"><tt>llvm/include</tt></a></li>
+      <li><a href="#lib"><tt>llvm/lib</tt></a></li>
+      <li><a href="#projects"><tt>llvm/projects</tt></a></li>
+      <li><a href="#runtime"><tt>llvm/runtime</tt></a></li>
+      <li><a href="#test"><tt>llvm/test</tt></a></li>
+      <li><a href="#llvmtest"><tt>llvm-test</tt></a></li>
+      <li><a href="#tools"><tt>llvm/tools</tt></a></li>
+      <li><a href="#utils"><tt>llvm/utils</tt></a></li>
+      <li><a href="#win32"><tt>llvm/win32</tt></a></li>
     </ol></li>
 
   <li><a href="#tutorial">An Example Using the LLVM Tool Chain</a>
@@ -114,7 +114,7 @@ and performance.
   <li>Read the documentation.</li>
   <li>Read the documentation.</li>
   <li>Remember that you were warned twice about reading the documentation.</li>
-  <li>Install the llvm-gcc4.0 (or llvm-gcc4.2) front end if you intend to compile C or C++:
+  <li>Install the llvm-gcc4.2 front end if you intend to compile C or C++:
     <ol>
       <li><tt>cd <i>where-you-want-the-C-front-end-to-live</i></tt></li>
       <li><tt>gunzip --stdout llvm-gcc.<i>platform</i>.tar.gz | tar -xvf -</tt>
@@ -236,7 +236,7 @@ software you will need.</p>
   <td>GCC</td>
 </tr>
 <tr>
-  <td>MacOS X<sup><a href="#pf_2">2</a></sup></td>
+  <td>MacOS X<sup><a href="#pf_2">2</a>,<a href="#pf_9">9</a></sup></td>
   <td>x86</td>
   <td>GCC</td>
 
@@ -320,6 +320,11 @@ project.</li>
     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 wasn't already applied.</li>
+<li><a name="pf_9">XCode 2.5 and gcc 4.0.1 (Apple Build 5370) will trip
+    internal LLVM assert messages when compiled for Release at optimization
+    levels greater than 0 (i.e., <i>&ldquo;-O1&rdquo;</i> and higher).
+    Add <i>OPTIMIZE_OPTION=&quot;-O0&quot;</i> to the build command line
+    if compiling for LLVM Release or bootstrapping the LLVM toolchain.</li>
 </ol>
 </div>
 
@@ -338,7 +343,7 @@ on your platform.</p>
 
 <p>The GCC front end is not very portable at the moment.  If you want to get it
 to work on another platform, you can download a copy of the source and <a
-href="CFEBuildInstrs.html">try to compile it</a> on your platform.</p>
+href="GCCFEBuildInstrs.html">try to compile it</a> on your platform.</p>
 
 </div>
 
@@ -510,14 +515,15 @@ of GCC you are using.
 problems in the STL that effectively prevent it from compiling LLVM.
 </p>
 
-<p><b>GCC 3.2.2</b>: This version of GCC fails to compile LLVM.</p>
+<p><b>GCC 3.2.2 and 3.2.3</b>: These versions of GCC fails to compile LLVM with
+a bogus template error.  This was fixed in later GCCs.</p>
 
 <p><b>GCC 3.3.2</b>: This version of GCC suffered from a <a 
 href="http://gcc.gnu.org/PR13392">serious bug</a> which causes it to crash in
 the "<tt>convert_from_eh_region_ranges_1</tt>" GCC function.</p>
 
 <p><b>Cygwin GCC 3.3.3</b>: The version of GCC 3.3.3 commonly shipped with 
-   Cygwin does not work.  Please <a href="CFEBuildInstrs.html#cygwin">upgrade 
+   Cygwin does not work.  Please <a href="GCCFEBuildInstrs.html#cygwin">upgrade 
    to a newer version</a> if possible.</p>
 <p><b>SuSE GCC 3.3.3</b>: The version of GCC 3.3.3 shipped with SuSE 9.1 (and 
    possibly others) does not compile LLVM correctly (it appears that exception 
@@ -532,6 +538,10 @@ the "<tt>convert_from_eh_region_ranges_1</tt>" GCC function.</p>
    builds with "make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2 ..."</p>
 <p><b>GCC 3.4.x on X86-64/amd64</b>: GCC <a href="http://llvm.org/PR1056">
    miscompiles portions of LLVM</a>.</p>
+<p><b>GCC 3.4.4 (CodeSourcery ARM 2005q3-2)</b>: this compiler miscompiles LLVM
+   when building with optimizations enabled.  It appears to work with 
+   "<tt>make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O1</tt>" or build a debug
+   build.</p>
 <p><b>IA-64 GCC 4.0.0</b>: The IA-64 version of GCC 4.0.0 is known to
    miscompile LLVM.</p>
 <p><b>Apple Xcode 2.3</b>: GCC crashes when compiling LLVM at -O3 (which is the
@@ -706,6 +716,8 @@ revision), you can checkout it from the '<tt>tags</tt>' directory (instead of
   subdirectories of the '<tt>tags</tt>' directory:</p>
 
 <ul>
+<li>Release 2.3: <b>RELEASE_23</b></li>
+<li>Release 2.2: <b>RELEASE_22</b></li>
 <li>Release 2.1: <b>RELEASE_21</b></li>
 <li>Release 2.0: <b>RELEASE_20</b></li>
 <li>Release 1.9: <b>RELEASE_19</b></li>
@@ -735,7 +747,7 @@ configured by the LLVM configure script as well as automatically updated when
 you run <tt>svn update</tt>.</p>
 
 <p>If you would like to get the GCC front end source code, you can also get it 
-and build it yourself.  Please follow <a href="CFEBuildInstrs.html">these 
+and build it yourself.  Please follow <a href="GCCFEBuildInstrs.html">these 
 instructions</a> to successfully get and build the LLVM GCC front-end.</p>
 
 </div>
@@ -750,7 +762,7 @@ instructions</a> to successfully get and build the LLVM GCC front-end.</p>
 <p>Before configuring and compiling the LLVM suite, you can optionally extract the 
 LLVM GCC front end from the binary distribution.  It is used for running the 
 llvm-test testsuite and for compiling C/C++ programs.  Note that you can optionally
-<a href="CFEBuildInstrs.html">build llvm-gcc yourself</a> after building the
+<a href="GCCFEBuildInstrs.html">build llvm-gcc yourself</a> after building the
 main LLVM repository.</p>
 
 <p>To install the GCC front end, do the following:</p>
@@ -775,7 +787,7 @@ file, not "fix" a header file that needs to be fixed for GCC, or it may be
 linked with libraries not available on your system.</p>
 
 <p>In cases like these, you may want to try <a
-href="CFEBuildInstrs.html">building the GCC front end from source.</a> This is
+href="GCCFEBuildInstrs.html">building the GCC front end from source.</a> This is
 much easier now than it was in the past.</p>
 
 </div>
@@ -830,7 +842,7 @@ script to configure the build system:</p>
   will fail as these libraries require llvm-gcc and llvm-g++. See 
   <a href="#installcf">Install the GCC Front End</a> for details on installing
   the C/C++ Front End. See
-  <a href="CFEBuildInstrs.html">Bootstrapping the LLVM C/C++ Front-End</a>
+  <a href="GCCFEBuildInstrs.html">Bootstrapping the LLVM C/C++ Front-End</a>
   for details on building the C/C++ Front End.</dd>
   <dt><i>--with-tclinclude</i></dt>
   <dd>Path to the tcl include directory under which <tt>tclsh</tt> can be
@@ -1376,13 +1388,10 @@ information is in the <a href="CommandGuide/index.html">Command Guide</a>.</p>
   
   <dt><tt><b>lli</b></tt></dt>
   <dd><tt>lli</tt> is the LLVM interpreter, which
-  can directly execute LLVM bitcode (although very slowly...). In addition
-  to a simple interpreter, <tt>lli</tt> also has a tracing mode (entered by
-  specifying <tt>-trace</tt> on the command line). Finally, for
-  architectures that support it (currently x86, Sparc, and PowerPC), by default,
-  <tt>lli</tt> will function as a Just-In-Time compiler (if the
-  functionality was compiled in), and will execute the code <i>much</i>
-  faster than the interpreter.</dd>
+  can directly execute LLVM bitcode (although very slowly...). For architectures
+  that support it (currently x86, Sparc, and PowerPC), by default, <tt>lli</tt>
+  will function as a Just-In-Time compiler (if the functionality was compiled
+  in), and will execute the code <i>much</i> faster than the interpreter.</dd>
 
   <dt><tt><b>llc</b></tt></dt>
   <dd> <tt>llc</tt> is the LLVM backend compiler, which