diff --git a/docs/FAQ.html b/docs/FAQ.html
index e372972..3be0598 100644
--- a/docs/FAQ.html
+++ b/docs/FAQ.html
@@ -2,6 +2,7 @@
                       "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <title>LLVM: Frequently Asked Questions</title>
   <style type="text/css">
     @import url("llvm.css");
@@ -18,78 +19,95 @@
 <ol>
   <li><a href="#license">License</a>
   <ol>
-  <li>Why are the LLVM source code and the front-end distributed under different
-  licenses?</li>
-  <li>Does the University of Illinois Open Source License really qualify as an
-  "open source" license?</li>
-  <li>Can I modify LLVM source code and redistribute the modified source?</li>
-  <li>Can I modify LLVM source code and redistribute binaries or other tools
-  based on it, without redistributing the source?</li>
+    <li>Why are the LLVM source code and the front-end distributed under
+        different licenses?</li>
+
+    <li>Does the University of Illinois Open Source License really qualify as an
+       "open source" license?</li>
+
+    <li>Can I modify LLVM source code and redistribute the modified source?</li>
+
+    <li>Can I modify LLVM source code and redistribute binaries or other tools
+        based on it, without redistributing the source?</li>
   </ol></li>
 
   <li><a href="#source">Source code</a>
   <ol>
-  <li>In what language is LLVM written?</li>
-  <li>How portable is the LLVM source code?</li>
+    <li>In what language is LLVM written?</li>
+
+    <li>How portable is the LLVM source code?</li>
   </ol></li>
 
   <li><a href="#build">Build Problems</a>
   <ol>
-  <li>When I run configure, it finds the wrong C compiler.</li>
-  <li>The <tt>configure</tt> script finds the right C compiler, but it uses the
-  LLVM linker from a previous build.  What do I do?</li>
-  <li>When creating a dynamic library, I get a strange GLIBC error.</li>
-  <li>I've updated my source tree from Subversion, and now my build is trying 
-  to use a file/directory that doesn't exist.</li>
-  <li>I've modified a Makefile in my source tree, but my build tree keeps using
-  the old version.  What do I do?</li>
-  <li>I've upgraded to a new version of LLVM, and I get strange build
-  errors.</li>
-  <li>I've built LLVM and am testing it, but the tests freeze.</li>
-  <li>Why do test results differ when I perform different types of builds?</li>
-  <li>Compiling LLVM with GCC 3.3.2 fails, what should I do?</li>
-  <li>Compiling LLVM with GCC succeeds, but the resulting tools do not work, what can be wrong?</li>
-  <li>When I use the test suite, all of the C Backend tests fail.  What is
-      wrong?</li>
-  <li>After Subversion update, rebuilding gives the error "No rule to make
-      target".</li>
-  <li><a href="#llvmc">The <tt>llvmc</tt> program gives me errors/doesn't
-      work.</a></li>
+    <li>When I run configure, it finds the wrong C compiler.</li>
+
+    <li>The <tt>configure</tt> script finds the right C compiler, but it uses
+        the LLVM linker from a previous build.  What do I do?</li>
+
+    <li>When creating a dynamic library, I get a strange GLIBC error.</li>
+
+    <li>I've updated my source tree from Subversion, and now my build is trying
+        to use a file/directory that doesn't exist.</li>
+
+    <li>I've modified a Makefile in my source tree, but my build tree keeps
+        using the old version.  What do I do?</li>
+
+    <li>I've upgraded to a new version of LLVM, and I get strange build
+        errors.</li>
+
+    <li>I've built LLVM and am testing it, but the tests freeze.</li>
+
+    <li>Why do test results differ when I perform different types of
+        builds?</li>
+
+    <li>Compiling LLVM with GCC 3.3.2 fails, what should I do?</li>
+
+    <li>Compiling LLVM with GCC succeeds, but the resulting tools do not work,
+        what can be wrong?</li>
+
+    <li>When I use the test suite, all of the C Backend tests fail.  What is
+        wrong?</li>
+
+    <li>After Subversion update, rebuilding gives the error "No rule to make
+        target".</li>
+
+    <li><a href="#llvmc">The <tt>llvmc</tt> program gives me errors/doesn't
+        work.</a></li>
   </ol></li>
 
   <li><a href="#felangs">Source Languages</a>
   <ol>
     <li><a href="#langs">What source languages are supported?</a></li>
+
     <li><a href="#langirgen">I'd like to write a self-hosting LLVM compiler. How
-      should I interface with the LLVM middle-end optimizers and back-end code 
-      generators?</a></li>
+        should I interface with the LLVM middle-end optimizers and back-end code
+        generators?</a></li>
+
     <li><a href="#langhlsupp">What support is there for higher level source
-      language constructs for building a compiler?</a></li>
+        language constructs for building a compiler?</a></li>
+
     <li><a href="GetElementPtr.html">I don't understand the GetElementPtr
       instruction. Help!</a></li>
   </ol>
 
   <li><a href="#cfe">Using the GCC Front End</a>
   <ol>
-    <li>
-    When I compile software that uses a configure script, the configure script
-    thinks my system has all of the header files and libraries it is testing
-    for.  How do I get configure to work correctly?
-    </li>
+    <li>When I compile software that uses a configure script, the configure
+        script thinks my system has all of the header files and libraries it is
+        testing for.  How do I get configure to work correctly?</li>
 
-    <li>
-    When I compile code using the LLVM GCC front end, it complains that it
-    cannot find libcrtend.a.
-    </li>
+    <li>When I compile code using the LLVM GCC front end, it complains that it
+        cannot find libcrtend.a?</li>
 
-    <li>
-    How can I disable all optimizations when compiling code using the LLVM GCC front end?
-    </li>
+    <li>How can I disable all optimizations when compiling code using the LLVM
+        GCC front end?</li>
 
-    <li><a href="#translatecxx">Can I use LLVM to convert C++ code to C code?</a></li>
+    <li><a href="#translatecxx">Can I use LLVM to convert C++ code to C
+        code?</a></li>
 
-    <li><a href="#platformindependent">Can I compile C or C++ code to platform-independent LLVM bitcode?</a></li>
-
+    <li><a href="#platformindependent">Can I compile C or C++ code to
+        platform-independent LLVM bitcode?</a></li>
   </ol>
   </li>
 
@@ -98,8 +116,11 @@
      <li><a href="#iosinit">What is this <tt>llvm.global_ctors</tt> and
           <tt>_GLOBAL__I__tmp_webcompile...</tt> stuff that happens when I
           #include &lt;iostream&gt;?</a></li>
+
      <li><a href="#codedce">Where did all of my code go??</a></li>
-     <li><a href="#undef">What is this "<tt>undef</tt>" thing that shows up in my code?</a></li>
+
+     <li><a href="#undef">What is this "<tt>undef</tt>" thing that shows up in
+         my code?</a></li>
   </ol>
   </li>
 </ol>
@@ -117,25 +138,26 @@
 
 <div class="question">
 <p>Why are the LLVM source code and the front-end distributed under different
-licenses?</p>
+   licenses?</p>
 </div>
 	
 <div class="answer">
 <p>The C/C++ front-ends are based on GCC and must be distributed under the GPL.
-Our aim is to distribute LLVM source code under a <em>much less restrictive</em>
-license, in particular one that does not compel users who distribute tools based
-on modifying the source to redistribute the modified source code as well.</p>
+   Our aim is to distribute LLVM source code under a <em>much less
+   restrictive</em> license, in particular one that does not compel users who
+   distribute tools based on modifying the source to redistribute the modified
+   source code as well.</p>
 </div>
 
 <div class="question">
 <p>Does the University of Illinois Open Source License really qualify as an
-"open source" license?</p>
+   "open source" license?</p>
 </div>
 
 <div class="answer">
-<p>Yes, the license is <a
-href="http://www.opensource.org/licenses/UoI-NCSA.php">certified</a> by the Open
-Source Initiative (OSI).</p>
+<p>Yes, the license
+   is <a href="http://www.opensource.org/licenses/UoI-NCSA.php">certified</a> by
+   the Open Source Initiative (OSI).</p>
 </div>
 
 <div class="question">
@@ -144,18 +166,19 @@
 
 <div class="answer">
 <p>Yes.  The modified source distribution must retain the copyright notice and
-follow the three bulletted conditions listed in the <a
-href="http://llvm.org/svn/llvm-project/llvm/trunk/LICENSE.TXT">LLVM license</a>.</p>
+   follow the three bulletted conditions listed in
+   the <a href="http://llvm.org/svn/llvm-project/llvm/trunk/LICENSE.TXT">LLVM
+   license</a>.</p>
 </div>
 
 <div class="question">
 <p>Can I modify LLVM source code and redistribute binaries or other tools based
-on it, without redistributing the source?</p>
+   on it, without redistributing the source?</p>
 </div>
 
 <div class="answer">
-<p>Yes, this is why we distribute LLVM under a less restrictive license than
-GPL, as explained in the first question above.</p>
+<p>Yes. This is why we distribute LLVM under a less restrictive license than
+   GPL, as explained in the first question above.</p>
 </div>
 
 <!-- *********************************************************************** -->
@@ -170,7 +193,7 @@
 
 <div class="answer">
 <p>All of the LLVM tools and libraries are written in C++ with extensive use of
-the STL.</p>
+   the STL.</p>
 </div>
 
 <div class="question">
@@ -207,26 +230,25 @@
 </div>
 
 <div class="answer">
-
 <p>The <tt>configure</tt> script attempts to locate first <tt>gcc</tt> and then
-<tt>cc</tt>, unless it finds compiler paths set in <tt>CC</tt> and <tt>CXX</tt>
-for the C and C++ compiler, respectively.</p>
+   <tt>cc</tt>, unless it finds compiler paths set in <tt>CC</tt>
+   and <tt>CXX</tt> for the C and C++ compiler, respectively.</p>
 
 <p>If <tt>configure</tt> finds the wrong compiler, either adjust your
-<tt>PATH</tt> environment variable or set <tt>CC</tt> and <tt>CXX</tt>
-explicitly.</p>
+   <tt>PATH</tt> environment variable or set <tt>CC</tt> and <tt>CXX</tt>
+   explicitly.</p>
 
 </div>
 
 <div class="question">
 <p>The <tt>configure</tt> script finds the right C compiler, but it uses the
-LLVM linker from a previous build.  What do I do?</p>
+   LLVM linker from a previous build.  What do I do?</p>
 </div>
 
 <div class="answer">
 <p>The <tt>configure</tt> script uses the <tt>PATH</tt> to find executables, so
-if it's grabbing the wrong linker/assembler/etc, there are two ways to fix
-it:</p>
+   if it's grabbing the wrong linker/assembler/etc, there are two ways to fix
+   it:</p>
 
 <ol>
   <li><p>Adjust your <tt>PATH</tt> environment variable so that the correct
@@ -245,7 +267,6 @@
          to do its work without having to adjust your <tt>PATH</tt>
          permanently.</p></li>
 </ol>
-
 </div>
 
 <div class="question">
@@ -254,38 +275,37 @@
 
 <div class="answer">
 <p>Under some operating systems (i.e. Linux), libtool does not work correctly if
-GCC was compiled with the --disable-shared option.  To work around this, install
-your own version of GCC that has shared libraries enabled by default.</p>
+   GCC was compiled with the --disable-shared option.  To work around this,
+   install your own version of GCC that has shared libraries enabled by
+   default.</p>
 </div>
 
 <div class="question">
-<p>I've updated my source tree from Subversion, and now my build is trying to 
-use a file/directory that doesn't exist.</p>
+<p>I've updated my source tree from Subversion, and now my build is trying to
+   use a file/directory that doesn't exist.</p>
 </div>
 
 <div class="answer">
 <p>You need to re-run configure in your object directory.  When new Makefiles
-are added to the source tree, they have to be copied over to the object tree in
-order to be used by the build.</p>
+   are added to the source tree, they have to be copied over to the object tree
+   in order to be used by the build.</p>
 </div>
 
 <div class="question">
 <p>I've modified a Makefile in my source tree, but my build tree keeps using the
-old version.  What do I do?</p>
+   old version.  What do I do?</p>
 </div>
 
 <div class="answer">
-<p>If the Makefile already exists in your object tree, you
-can just run the following command in the top level directory of your object
-tree:</p>
+<p>If the Makefile already exists in your object tree, you can just run the
+   following command in the top level directory of your object tree:</p>
 
 <pre class="doc_code">
 % ./config.status &lt;relative path to Makefile&gt;
 </pre>
 
 <p>If the Makefile is new, you will have to modify the configure script to copy
-it over.</p>
-
+   it over.</p>
 </div>
 
 <div class="question">
@@ -295,13 +315,12 @@
 <div class="answer">
 
 <p>Sometimes, changes to the LLVM source code alters how the build system works.
-Changes in libtool, autoconf, or header file dependencies are especially prone
-to this sort of problem.</p>
+   Changes in libtool, autoconf, or header file dependencies are especially
+   prone to this sort of problem.</p>
 
 <p>The best thing to try is to remove the old files and re-build.  In most
-cases, this takes care of the problem.  To do this, just type <tt>make
-clean</tt> and then <tt>make</tt> in the directory that fails to build.</p>
-
+   cases, this takes care of the problem.  To do this, just type <tt>make
+   clean</tt> and then <tt>make</tt> in the directory that fails to build.</p>
 </div>
 
 <div class="question">
@@ -309,10 +328,9 @@
 </div>
 
 <div class="answer">
-
 <p>This is most likely occurring because you built a profile or release
-(optimized) build of LLVM and have not specified the same information on the
-<tt>gmake</tt> command line.</p>
+   (optimized) build of LLVM and have not specified the same information on the
+   <tt>gmake</tt> command line.</p>
 
 <p>For example, if you built LLVM with the command:</p>
 
@@ -326,7 +344,6 @@
 % cd llvm/test
 % gmake ENABLE_PROFILING=1
 </pre>
-
 </div>
 
 <div class="question">
@@ -334,17 +351,15 @@
 </div>
 
 <div class="answer">
-
 <p>The LLVM test suite is dependent upon several features of the LLVM tools and
-libraries.</p>
+   libraries.</p>
 
 <p>First, the debugging assertions in code are not enabled in optimized or
-profiling builds.  Hence, tests that used to fail may pass.</p>
+   profiling builds.  Hence, tests that used to fail may pass.</p>
 	
 <p>Second, some tests may rely upon debugging options or behavior that is only
-available in the debug build.  These tests will fail in an optimized or profile
-build.</p>
-
+   available in the debug build.  These tests will fail in an optimized or
+   profile build.</p>
 </div>
 
 <div class="question">
@@ -352,24 +367,26 @@
 </div>
 
 <div class="answer">
-<p>This is <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13392">a bug in GCC</a>, and 
-affects projects other than LLVM.  Try upgrading or downgrading your GCC.</p>
+<p>This is <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13392">a bug in
+   GCC</a>, and affects projects other than LLVM.  Try upgrading or downgrading
+   your GCC.</p>
 </div>
 
 <div class="question">
-<p>Compiling LLVM with GCC succeeds, but the resulting tools do not work, what can be wrong?</p>
+<p>Compiling LLVM with GCC succeeds, but the resulting tools do not work, what
+   can be wrong?</p>
 </div>
 
 <div class="answer">
-<p>Several versions of GCC have shown a weakness in miscompiling the LLVM codebase. Please
-consult your compiler version (<tt>gcc --version</tt>) to find out whether it is
-<a href="GettingStarted.html#brokengcc">broken</a>. If so, your only option is to upgrade
-GCC to a known good version.</p>
+<p>Several versions of GCC have shown a weakness in miscompiling the LLVM
+   codebase. Please consult your compiler version (<tt>gcc --version</tt>) to
+   find out whether it is <a href="GettingStarted.html#brokengcc">broken</a>.
+   If so, your only option is to upgrade GCC to a known good version.</p>
 </div>
 
 <div class="question">
 <p>After Subversion update, rebuilding gives the error "No rule to make
-target".</p>
+   target".</p>
 </div>
 
 <div class="answer">
@@ -381,9 +398,9 @@
 Stop.
 </pre>
 
-<p>This may occur anytime files are moved within the Subversion repository or 
-removed entirely.  In this case, the best solution is to erase all 
-<tt>.d</tt> files, which list dependencies for source files, and rebuild:</p>
+<p>This may occur anytime files are moved within the Subversion repository or
+   removed entirely.  In this case, the best solution is to erase all
+   <tt>.d</tt> files, which list dependencies for source files, and rebuild:</p>
 
 <pre class="doc_code">
 % cd $LLVM_OBJ_DIR
@@ -392,105 +409,121 @@
 </pre>
 
 <p>In other cases, it may be necessary to run <tt>make clean</tt> before
-rebuilding.</p>
+   rebuilding.</p>
 </div>
 
 <div class="question"><p><a name="llvmc">
-The <tt>llvmc</tt> program gives me errors/doesn't work.</a></p>
+<p>The <tt>llvmc</tt> program gives me errors/doesn't work.</a></p>
 </div>
 
 <div class="answer">
 <p><tt>llvmc</tt> is experimental and isn't really supported. We suggest
-using <tt>llvm-gcc</tt> instead.</p>
+   using <tt>llvm-gcc</tt> instead.</p>
 </div>
 
 <!-- *********************************************************************** -->
 <div class="doc_section"><a name="felangs">Source Languages</a></div>
 
-<div class="question"><p>
-  <a name="langs">What source languages are supported?</a></p>
-</div>
-<div class="answer">
-  <p>LLVM currently has full support for C and C++ source languages. These are
-  available through a special version of GCC that LLVM calls the 
-  <a href="#cfe">C Front End</a></p>
-  <p>There is an incomplete version of a Java front end available in the
-  <tt>java</tt> module. There is no documentation on this yet so
-  you'll need to download the code, compile it, and try it.</p>
-  <p>The PyPy developers are working on integrating LLVM into the PyPy backend
-  so that PyPy language can translate to LLVM.</p>
+<div class="question">
+<p><a name="langs">What source languages are supported?</a></p>
 </div>
 
-<div class="question"><p><a name="langirgen">
-  I'd like to write a self-hosting LLVM compiler. How should I interface with 
-  the LLVM middle-end optimizers and back-end code generators?
-</a></p></div>
 <div class="answer">
-  <p>Your compiler front-end will communicate with LLVM by creating a module in
-     the LLVM intermediate representation (IR) format. Assuming you want to 
-     write your language's compiler in the language itself (rather than C++), 
-     there are 3 major ways to tackle generating LLVM IR from a front-end:</p>
-  <ul>
-    <li>
-      <strong>Call into the LLVM libraries code using your language's FFI 
-              (foreign function interface).</strong>
-      <ul>
-        <li><em>for:</em> best tracks changes to the LLVM IR, .ll syntax, 
-            and .bc format</li>
-        <li><em>for:</em> enables running LLVM optimization passes without a 
-            emit/parse overhead</li>
-        <li><em>for:</em> adapts well to a JIT context</li>
-        <li><em>against:</em> lots of ugly glue code to write</li>
-      </ul>
-    </li>
-    <li>
-      <strong>Emit LLVM assembly from your compiler's native language.</strong>
-      <ul>
-        <li><em>for:</em> very straightforward to get started</li>
-        <li><em>against:</em> the .ll parser is slower than the bitcode reader 
-            when interfacing to the middle end</li>
-        <li><em>against:</em> you'll have to re-engineer the LLVM IR object 
-            model and asm writer in your language</li>
-        <li><em>against:</em> it may be harder to track changes to the IR</li>
-      </ul>
-    </li>
-    <li>
-      <strong>Emit LLVM bitcode from your compiler's native language.</strong>
-      <ul>
-        <li><em>for:</em> can use the more-efficient bitcode reader when 
-            interfacing to the middle end</li>
-        <li><em>against:</em> you'll have to re-engineer the LLVM IR object 
-            model and bitcode writer in your language</li>
-        <li><em>against:</em> it may be harder to track changes to the IR</li>
-      </ul>
-    </li>
-  </ul>
-  <p>If you go with the first option, the C bindings in include/llvm-c should
-     help a lot, since most languages have strong support for interfacing with 
-     C. The most common hurdle with calling C from managed code is interfacing
-     with the garbage collector. The C interface was designed to require very 
-     little memory management, and so is straightforward in this regard.</p>
+<p>LLVM currently has full support for C and C++ source languages. These are
+   available through a special version of GCC that LLVM calls the
+   <a href="#cfe">C Front End</a></p>
+
+<p>There is an incomplete version of a Java front end available in the
+   <tt>java</tt> module. There is no documentation on this yet so you'll need to
+   download the code, compile it, and try it.</p>
+
+<p>The PyPy developers are working on integrating LLVM into the PyPy backend so
+   that PyPy language can translate to LLVM.</p>
 </div>
 
-<div class="question"><p><a name="langhlsupp">
-  What support is there for a higher level source language constructs for 
-  building a compiler?</a></p>
-</div>
-<div class="answer">
-  <p>Currently, there isn't much. LLVM supports an intermediate representation
-  which is useful for code representation but will not support the high level
-  (abstract syntax tree) representation needed by most compilers. There are no
-  facilities for lexical nor semantic analysis. There is, however, a <i>mostly
-    implemented</i> configuration-driven 
-  <a href="CompilerDriver.html">compiler driver</a> which simplifies the task
-  of running optimizations, linking, and executable generation.</p>
+<div class="question">
+<p><a name="langirgen">I'd like to write a self-hosting LLVM compiler. How
+   should I interface with the LLVM middle-end optimizers and back-end code
+   generators?</a></p>
 </div>
 
-<div class="question"><p><a name="getelementptr">
-  I don't understand the GetElementPtr instruction. Help!</a></p>
-</div>
 <div class="answer">
-  <p>See <a href="GetElementPtr.html">The Often Misunderstood GEP
+<p>Your compiler front-end will communicate with LLVM by creating a module in
+   the LLVM intermediate representation (IR) format. Assuming you want to write
+   your language's compiler in the language itself (rather than C++), there are
+   3 major ways to tackle generating LLVM IR from a front-end:</p>
+
+<ul>
+  <li><strong>Call into the LLVM libraries code using your language's FFI
+      (foreign function interface).</strong>
+
+    <ul>
+      <li><em>for:</em> best tracks changes to the LLVM IR, .ll syntax, and .bc
+          format</li>
+
+      <li><em>for:</em> enables running LLVM optimization passes without a
+          emit/parse overhead</li>
+
+      <li><em>for:</em> adapts well to a JIT context</li>
+
+      <li><em>against:</em> lots of ugly glue code to write</li>
+    </ul></li>
+
+  <li>  <strong>Emit LLVM assembly from your compiler's native language.</strong>
+    <ul>
+      <li><em>for:</em> very straightforward to get started</li>
+
+      <li><em>against:</em> the .ll parser is slower than the bitcode reader
+          when interfacing to the middle end</li>
+
+      <li><em>against:</em> you'll have to re-engineer the LLVM IR object model
+          and asm writer in your language</li>
+
+      <li><em>against:</em> it may be harder to track changes to the IR</li>
+    </ul></li>
+
+  <li><strong>Emit LLVM bitcode from your compiler's native language.</strong>
+
+    <ul>
+      <li><em>for:</em> can use the more-efficient bitcode reader when
+          interfacing to the middle end</li>
+
+      <li><em>against:</em> you'll have to re-engineer the LLVM IR object 
+          model and bitcode writer in your language</li>
+
+      <li><em>against:</em> it may be harder to track changes to the IR</li>
+    </ul></li>
+</ul>
+
+<p>If you go with the first option, the C bindings in include/llvm-c should help
+   a lot, since most languages have strong support for interfacing with C. The
+   most common hurdle with calling C from managed code is interfacing with the
+   garbage collector. The C interface was designed to require very little memory
+   management, and so is straightforward in this regard.</p>
+</div>
+
+<div class="question">
+<p><a name="langhlsupp">What support is there for a higher level source language
+   constructs for building a compiler?</a></p>
+</div>
+
+<div class="answer">
+<p>Currently, there isn't much. LLVM supports an intermediate representation
+   which is useful for code representation but will not support the high level
+   (abstract syntax tree) representation needed by most compilers. There are no
+   facilities for lexical nor semantic analysis. There is, however, a <i>mostly
+   implemented</i> configuration-driven
+   <a href="CompilerDriver.html">compiler driver</a> which simplifies the task
+   of running optimizations, linking, and executable generation.</p>
+</div>
+
+<div class="question">
+<p><a name="getelementptr">I don't understand the GetElementPtr
+   instruction. Help!</a></p>
+</div>
+
+<div class="answer">
+<p>See <a href="GetElementPtr.html">The Often Misunderstood GEP
    Instruction</a>.</p>
 </div>
 
@@ -500,51 +533,44 @@
 </div>
 
 <div class="question">
-<p>
-When I compile software that uses a configure script, the configure script
-thinks my system has all of the header files and libraries it is testing for.
-How do I get configure to work correctly?
-</p>
+<p>When I compile software that uses a configure script, the configure script
+   thinks my system has all of the header files and libraries it is testing for.
+   How do I get configure to work correctly?</p>
 </div>
 
 <div class="answer">
-<p>
-The configure script is getting things wrong because the LLVM linker allows
-symbols to be undefined at link time (so that they can be resolved during JIT
-or translation to the C back end).  That is why configure thinks your system
-"has everything."
-</p>
-<p>
-To work around this, perform the following steps:
-</p>
+<p>The configure script is getting things wrong because the LLVM linker allows
+   symbols to be undefined at link time (so that they can be resolved during JIT
+   or translation to the C back end).  That is why configure thinks your system
+   "has everything."</p>
+
+<p>To work around this, perform the following steps:</p>
+
 <ol>
-  <li>Make sure the CC and CXX environment variables contains the full path to 
-  the LLVM GCC front end.</li>
+  <li>Make sure the CC and CXX environment variables contains the full path to
+      the LLVM GCC front end.</li>
 
   <li>Make sure that the regular C compiler is first in your PATH. </li>
 
   <li>Add the string "-Wl,-native" to your CFLAGS environment variable.</li>
 </ol>
 
-<p>
-This will allow the <tt>llvm-ld</tt> linker to create a native code executable 
-instead of shell script that runs the JIT.  Creating native code requires 
-standard linkage, which in turn will allow the configure script to find out if 
-code is not linking on your system because the feature isn't available on your 
-system.</p>
+<p>This will allow the <tt>llvm-ld</tt> linker to create a native code
+   executable instead of shell script that runs the JIT.  Creating native code
+   requires standard linkage, which in turn will allow the configure script to
+   find out if code is not linking on your system because the feature isn't
+   available on your system.</p>
 </div>
 
 <div class="question">
-<p>
-When I compile code using the LLVM GCC front end, it complains that it cannot
-find libcrtend.a.
+<p>When I compile code using the LLVM GCC front end, it complains that it cannot
+   find libcrtend.a.
 </p>
 </div>
 
 <div class="answer">
-<p>
-The only way this can happen is if you haven't installed the runtime library. To
-correct this, do:</p>
+<p>The only way this can happen is if you haven't installed the runtime
+   library. To correct this, do:</p>
 
 <pre class="doc_code">
 % cd llvm/runtime
@@ -553,33 +579,28 @@
 </div>
 
 <div class="question">
-<p>
-How can I disable all optimizations when compiling code using the LLVM GCC front end?
-</p>
+<p>How can I disable all optimizations when compiling code using the LLVM GCC
+   front end?</p>
 </div>
 
 <div class="answer">
-<p>
-Passing "-Wa,-disable-opt -Wl,-disable-opt" will disable *all* cleanup and
-optimizations done at the llvm level, leaving you with the truly horrible
-code that you desire.
-</p>
+<p>Passing "-Wa,-disable-opt -Wl,-disable-opt" will disable *all* cleanup and
+   optimizations done at the llvm level, leaving you with the truly horrible
+   code that you desire.</p>
 </div>
 
 
 <div class="question">
-<p>
-<a name="translatecxx">Can I use LLVM to convert C++ code to C code?</a>
-</p>
+<p><a name="translatecxx">Can I use LLVM to convert C++ code to C code?</a></p>
 </div>
 
 <div class="answer">
 <p>Yes, you can use LLVM to convert code from any language LLVM supports to C.
-Note that the generated C code will be very low level (all loops are lowered
-to gotos, etc) and not very pretty (comments are stripped, original source
-formatting is totally lost, variables are renamed, expressions are regrouped), 
-so this may not be what you're looking for. Also, there are several
-limitations noted below.<p>
+   Note that the generated C code will be very low level (all loops are lowered
+   to gotos, etc) and not very pretty (comments are stripped, original source
+   formatting is totally lost, variables are renamed, expressions are
+   regrouped), so this may not be what you're looking for. Also, there are
+   several limitations noted below.<p>
 
 <p>Use commands like this:</p>
 
@@ -590,7 +611,7 @@
 % llvm-g++ x.cpp -o program
 </pre>
 
-  <p>or:</p>
+      <p>or:</p>
 
 <pre class="doc_code">
 % llvm-g++ a.cpp -c
@@ -608,7 +629,7 @@
 % llc -march=c program.bc -o program.c
 </pre></li>
 
-<li><p>Finally, compile the C file:</p>
+  <li><p>Finally, compile the C file:</p>
 
 <pre class="doc_code">
 % cc x.c
@@ -616,56 +637,51 @@
 
 </ol>
 
-<p>Using LLVM does not eliminate the need for C++ library support.
-If you use the llvm-g++ front-end, the generated code will depend on
-g++'s C++ support libraries in the same way that code generated from
-g++ would.  If you use another C++ front-end, the generated code will
-depend on whatever library that front-end would normally require.</p>
+<p>Using LLVM does not eliminate the need for C++ library support.  If you use
+   the llvm-g++ front-end, the generated code will depend on g++'s C++ support
+   libraries in the same way that code generated from g++ would.  If you use
+   another C++ front-end, the generated code will depend on whatever library
+   that front-end would normally require.</p>
 
-<p>If you are working on a platform that does not provide any C++
-libraries, you may be able to manually compile libstdc++ to LLVM
-bitcode, statically link it into your program, then use the commands above to
-convert the whole result into C code.  Alternatively, you might compile the
-libraries and your application into two different chunks of C code and link
-them.</p>
+<p>If you are working on a platform that does not provide any C++ libraries, you
+   may be able to manually compile libstdc++ to LLVM bitcode, statically link it
+   into your program, then use the commands above to convert the whole result
+   into C code.  Alternatively, you might compile the libraries and your
+   application into two different chunks of C code and link them.</p>
 
-<p>Note that, by default, the C back end does not support exception handling.  If
-you want/need it for a certain program, you can enable it by passing
-"-enable-correct-eh-support" to the llc program.  The resultant code will use
-setjmp/longjmp to implement exception support that is relatively slow, and
-not C++-ABI-conforming on most platforms, but otherwise correct.</p>
+<p>Note that, by default, the C back end does not support exception handling.
+   If you want/need it for a certain program, you can enable it by passing
+   "-enable-correct-eh-support" to the llc program.  The resultant code will use
+   setjmp/longjmp to implement exception support that is relatively slow, and
+   not C++-ABI-conforming on most platforms, but otherwise correct.</p>
 
-<p>Also, there are a number of other limitations of the C backend that
-cause it to produce code that does not fully conform to the C++ ABI on
-most platforms. Some of the C++ programs in LLVM's test suite are known
-to fail when compiled with the C back end because of ABI incompatiblities
-with standard C++ libraries.</p>
-
+<p>Also, there are a number of other limitations of the C backend that cause it
+   to produce code that does not fully conform to the C++ ABI on most
+   platforms. Some of the C++ programs in LLVM's test suite are known to fail
+   when compiled with the C back end because of ABI incompatiblities with
+   standard C++ libraries.</p>
 </div>
 
 <div class="question">
-<p>
-<a name="platformindependent">Can I compile C or C++ code to platform-independent LLVM bitcode?</a>
-</p>
+<p><a name="platformindependent">Can I compile C or C++ code to
+   platform-independent LLVM bitcode?</a></p>
 </div>
 
 <div class="answer">
+<p>No. C and C++ are inherently platform-dependent languages. The most obvious
+   example of this is the preprocessor. A very common way that C code is made
+   portable is by using the preprocessor to include platform-specific code. In
+   practice, information about other platforms is lost after preprocessing, so
+   the result is inherently dependent on the platform that the preprocessing was
+   targetting.</p>
 
-<p>No. C and C++ are inherently platform-dependent languages. The most
-obvious example of this is the preprocessor. A very common way that C code
-is made portable is by using the preprocessor to include platform-specific
-code. In practice, information about other platforms is lost after
-preprocessing, so the result is inherently dependent on the platform that
-the preprocessing was targetting.</p>
+<p>Another example is <tt>sizeof</tt>. It's common for <tt>sizeof(long)</tt> to
+   vary between platforms. In most C front-ends, <tt>sizeof</tt> is expanded to
+   a constant immediately, thus hardwaring a platform-specific detail.</p>
 
-<p>Another example is <tt>sizeof</tt>. It's common for <tt>sizeof(long)</tt>
-to vary between platforms. In most C front-ends, <tt>sizeof</tt> is expanded
-to a constant immediately, thus hardwaring a platform-specific detail.</p>
-
-<p>Also, since many platforms define their ABIs in terms of C, and since
-LLVM is lower-level than C, front-ends currently must emit platform-specific
-IR in order to have the result conform to the platform ABI.</p>
-
+<p>Also, since many platforms define their ABIs in terms of C, and since LLVM is
+   lower-level than C, front-ends currently must emit platform-specific IR in
+   order to have the result conform to the platform ABI.</p>
 </div>
 
 <!-- *********************************************************************** -->
@@ -674,77 +690,71 @@
 </div>
 
 <div class="question">
-<a name="iosinit"></a>
-<p> What is this <tt>llvm.global_ctors</tt> and
-<tt>_GLOBAL__I__tmp_webcompile...</tt> stuff that happens when I #include
-&lt;iostream&gt;?</p>
+<p><a name="iosinit">What is this <tt>llvm.global_ctors</tt> and
+   <tt>_GLOBAL__I__tmp_webcompile...</tt> stuff that happens when I <tt>#include
+   &lt;iostream&gt;</tt>?</a></p>
 </div>
 
 <div class="answer">
-
-<p>If you #include the &lt;iostream&gt; header into a C++ translation unit, the
-file will probably use the <tt>std::cin</tt>/<tt>std::cout</tt>/... global
-objects.  However, C++ does not guarantee an order of initialization between
-static objects in different translation units, so if a static ctor/dtor in your
-.cpp file used <tt>std::cout</tt>, for example, the object would not necessarily
-be automatically initialized before your use.</p>
+<p>If you <tt>#include</tt> the <tt>&lt;iostream&gt;</tt> header into a C++
+   translation unit, the file will probably use
+   the <tt>std::cin</tt>/<tt>std::cout</tt>/... global objects.  However, C++
+   does not guarantee an order of initialization between static objects in
+   different translation units, so if a static ctor/dtor in your .cpp file
+   used <tt>std::cout</tt>, for example, the object would not necessarily be
+   automatically initialized before your use.</p>
 
 <p>To make <tt>std::cout</tt> and friends work correctly in these scenarios, the
-STL that we use declares a static object that gets created in every translation
-unit that includes <tt>&lt;iostream&gt;</tt>.  This object has a static
-constructor and destructor that initializes and destroys the global iostream
-objects before they could possibly be used in the file.  The code that you see
-in the .ll file corresponds to the constructor and destructor registration code.
+   STL that we use declares a static object that gets created in every
+   translation unit that includes <tt>&lt;iostream&gt;</tt>.  This object has a
+   static constructor and destructor that initializes and destroys the global
+   iostream objects before they could possibly be used in the file.  The code
+   that you see in the .ll file corresponds to the constructor and destructor
+   registration code.
 </p>
 
 <p>If you would like to make it easier to <b>understand</b> the LLVM code
-generated by the compiler in the demo page, consider using <tt>printf()</tt>
-instead of <tt>iostream</tt>s to print values.</p>
-
+   generated by the compiler in the demo page, consider using <tt>printf()</tt>
+   instead of <tt>iostream</tt>s to print values.</p>
 </div>
 
 <!--=========================================================================-->
 
-<div class="question"><p>
-<a name="codedce"></a>
-Where did all of my code go??
-</p></div>
+<div class="question">
+<p><a name="codedce">Where did all of my code go??</a></p>
+</div>
 
 <div class="answer">
-<p>
-If you are using the LLVM demo page, you may often wonder what happened to all
-of the code that you typed in.  Remember that the demo script is running the
-code through the LLVM optimizers, so if your code doesn't actually do anything
-useful, it might all be deleted.
-</p>
+<p>If you are using the LLVM demo page, you may often wonder what happened to
+   all of the code that you typed in.  Remember that the demo script is running
+   the code through the LLVM optimizers, so if your code doesn't actually do
+   anything useful, it might all be deleted.</p>
 
-<p>
-To prevent this, make sure that the code is actually needed.  For example, if
-you are computing some expression, return the value from the function instead of
-leaving it in a local variable.  If you really want to constrain the optimizer,
-you can read from and assign to <tt>volatile</tt> global variables.
-</p>
+<p>To prevent this, make sure that the code is actually needed.  For example, if
+   you are computing some expression, return the value from the function instead
+   of leaving it in a local variable.  If you really want to constrain the
+   optimizer, you can read from and assign to <tt>volatile</tt> global
+   variables.</p>
 </div>
 
 <!--=========================================================================-->
 
-<div class="question"><p>
-<a name="undef"></a>
-<p>What is this "<tt>undef</tt>" thing that shows up in my code?
-</p></div>
+<div class="question">
+<p><a name="undef">What is this "<tt>undef</tt>" thing that shows up in my
+   code?</p>
+</div>
 
 <div class="answer">
-<p>
-<a href="LangRef.html#undef"><tt>undef</tt></a> is the LLVM way of representing
-a value that is not defined.  You can get these if you do not initialize a 
-variable before you use it.  For example, the C function:</p>
+<p><a href="LangRef.html#undef"><tt>undef</tt></a> is the LLVM way of
+   representing a value that is not defined.  You can get these if you do not
+   initialize a variable before you use it.  For example, the C function:</p>
 
 <pre class="doc_code">
 int X() { int i; return i; }
 </pre>
 
-<p>Is compiled to "<tt>ret i32 undef</tt>" because "<tt>i</tt>" never has
-a value specified for it.</p>
+<p>Is compiled to "<tt>ret i32 undef</tt>" because "<tt>i</tt>" never has a
+   value specified for it.</p>
 </div>
 
 <!-- *********************************************************************** -->
