+
+<p>LLVM's API changes with each release, so users are likely to want, for
+example, both LLVM-2.6 and LLVM-2.7 installed at the same time to support apps
+developed against each.
+</p>
+</div>
+
+<!--=========================================================================-->
+<div class="doc_section"><a name="compilation">Compile Flags</a></div>
+<!--=========================================================================-->
+<div class="doc_text">
+
+<p>LLVM runs much more quickly when it's optimized and assertions are removed.
+However, such a build is currently incompatible with users who build without
+defining NDEBUG, and the lack of assertions makes it hard to debug problems in
+user code. We recommend allowing users to install both optimized and debug
+versions of LLVM in parallel. The following configure flags are relevant:
+</p>
+
+<dl>
+ <dt><tt>--disable-assertions</tt></dt><dd>Builds LLVM with <tt>NDEBUG</tt>
+ defined. Changes the LLVM ABI. Also available by setting
+ <tt>DISABLE_ASSERTIONS=0|1</tt> in <tt>make</tt>'s environment. This defaults
+ to enabled regardless of the optimization setting, but it slows things
+ down.</dd>
+
+ <dt><tt>--enable-debug-symbols</tt></dt><dd>Builds LLVM with <tt>-g</tt>.
+ Also available by setting <tt>DEBUG_SYMBOLS=0|1</tt> in <tt>make</tt>'s
+ environment. This defaults to disabled when optimizing, so you should turn it
+ back on to let users debug their programs.</dd>
+
+ <dt><tt>--enable-optimized</tt></dt><dd>(For svn checkouts) Builds LLVM with
+ <tt>-O2</tt> and, by default, turns off debug symbols. Also available by
+ setting <tt>ENABLE_OPTIMIZED=0|1</tt> in <tt>make</tt>'s environment. This
+ defaults to enabled when not in a checkout.</dd>
+</dl>