[llvm-commits] [llvm] r143542 - in /llvm/trunk/docs: UsingLibraries.html index.html

Daniel Dunbar daniel at zuster.org
Wed Nov 2 08:56:55 PDT 2011


Author: ddunbar
Date: Wed Nov  2 10:56:55 2011
New Revision: 143542

URL: http://llvm.org/viewvc/llvm-project?rev=143542&view=rev
Log:
docs: Remove UsingLibraries page, which was inaccurate / out-of-date and not
particularly useful.

Removed:
    llvm/trunk/docs/UsingLibraries.html
Modified:
    llvm/trunk/docs/index.html

Removed: llvm/trunk/docs/UsingLibraries.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/UsingLibraries.html?rev=143541&view=auto
==============================================================================
--- llvm/trunk/docs/UsingLibraries.html (original)
+++ llvm/trunk/docs/UsingLibraries.html (removed)
@@ -1,438 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-  <title>Using The LLVM Libraries</title>
-  <link rel="stylesheet" href="llvm.css" type="text/css">
-</head>
-<body>
-<h1>Using The LLVM Libraries</h1>
-<ol>
-  <li><a href="#abstract">Abstract</a></li>
-  <li><a href="#introduction">Introduction</a></li>
-  <li><a href="#descriptions">Library Descriptions</a></li>
-  <li><a href="#dependencies">Library Dependencies</a></li>
-  <li><a href="#rot">Linkage Rules Of Thumb</a>
-	  <ol>
-      <li><a href="#always">Always link LLVMCore, LLVMSupport, LLVMSystem</a>
-			<li><a href="#onlyone">Never link both archive and re-linked</a>
-		</ol>
-	</li>
-</ol>
-
-<div class="doc_author">
-  <p>Written by <a href="mailto:rspencer at x10sys.com">Reid Spencer</a></p>
-</div>
-
-<p class="doc_warning">Warning: This document is out of date, for more
-  information please
-  see <a href="CommandGuide/html/llvm-config.html">llvm-config</a> or,
-  if you use CMake, <a href="CMake.html#embedding">the CMake LLVM
-  guide</a>.</p>
-
-<!-- ======================================================================= -->
-<h2><a name="abstract">Abstract</a></h2>
-<div>
-  <p>Amongst other things, LLVM is a toolkit for building compilers, linkers,
-  runtime executives, virtual machines, and other program execution related
-  tools. In addition to the LLVM tool set, the functionality of LLVM is
-  available through a set of libraries.  To use LLVM as a toolkit for
-  constructing tools, a developer needs to understand what is contained in the
-  various libraries, what they depend on, and how to use them.  Fortunately,
-  there is a tool, <tt>llvm-config</tt> to aid with this. This document 
-  describes the contents of the libraries and how to use <tt>llvm-config</tt>
-  to generate command line options.
-</p>
-</div>
-
-<!-- ======================================================================= -->
-<h2><a name="introduction">Introduction</a></h2>
-<div>
-  <p>If you're writing a compiler, virtual machine, or any other utility based 
-  on LLVM, you'll need to figure out which of the many libraries files you will 
-  need to link with to be successful. An understanding of the contents of these 
-  libraries will be useful in coming up with an optimal specification for the 
-  libraries to link with. The purpose of this document is to reduce some of 
-  the trial and error that the author experienced in using LLVM.</p>
-  <p>LLVM produces two types of libraries: archives (ending in <tt>.a</tt>) and
-  objects (ending in <tt>.o</tt>). However, both are libraries. Libraries ending
-  in <tt>.o</tt> are known as re-linked libraries because they contain all the
-  compilation units of the library linked together as a single <tt>.o</tt> file.
-  Furthermore, several of the libraries have <em>both</em> forms of library. The
-  re-linked libraries are used whenever you want to include all symbols from the
-  library. The archive libraries are used whenever you want to only resolve
-  outstanding symbols at that point in the link without including everything in
-  the library. </p>
-  <p>If you're using the LLVM Makefile system to link your tools,you will use 
-  the <tt>LLVMLIBS</tt> make variable. 
-  (see the <a href="MakefileGuide.html#LLVMLIBS">Makefile Guide</a> for 
-  details). This variable specifies which LLVM libraries to link into your tool 
-  and the order in which they will be linked. You specify re-linked libraries by
-  naming the library without a suffix. You specify archive libraries by naming
-  the library with a <tt>.a</tt> suffix but without the <tt>lib</tt> prefix. The
-  order in which the libraries appear in the <tt>LLVMLIBS</tt> variable
-  definition is the order in which they will be linked. Getting this order
-  correct for your tool can sometimes be challenging.
-</div>
-<!-- ======================================================================= -->
-<h2><a name="descriptions">Library Descriptions</a></h2>
-<div>
-  <p>The table below categorizes each library
-<table style="text-align:left">
-  <tr><th>Library</th><th>Forms</th><th>Description</th></tr>
-  <tr><th colspan="3">Core Libraries</th></tr>
-  <tr><td>LLVMArchive</td><td><tt>.a</tt></td>
-    <td>LLVM archive reading and writing</td></tr>
-  <tr><td>LLVMAsmParser</td><td><tt>.a</tt></td>
-    <td>LLVM assembly parsing</td></tr>
-  <tr><td>LLVMBCReader</td><td><tt>.a</tt></td>
-    <td>LLVM bitcode reading</td></tr>
-  <tr><td>LLVMBCWriter</td><td><tt>.a</tt></td>
-    <td>LLVM bitcode writing</td></tr>
-  <tr><td>LLVMCore</td><td><tt>.a</tt></td>
-    <td>LLVM core intermediate representation</td></tr>
-  <tr><td>LLVMDebugger</td><td><tt>.a</tt></td>
-    <td>Source level debugging support</td></tr>
-  <tr><td>LLVMLinker</td><td><tt>.a</tt></td>
-    <td>Bitcode and archive linking interface</td></tr>
-  <tr><td>LLVMSupport</td><td><tt>.a</tt></td>
-    <td>General support utilities</td></tr>
-  <tr><td>LLVMSystem</td><td><tt>.a</tt></td>
-    <td>Operating system abstraction layer</td></tr>
-  <tr><td>LLVMbzip2</td><td><tt>.a</tt></td>
-    <td>BZip2 compression library</td></tr>
-
-  <tr><th colspan="3">Analysis Libraries</th></tr>
-  <tr><td>LLVMAnalysis</td><td><tt>.a</tt></td>
-    <td>Various analysis passes.</td></tr>
-  <tr><td>LLVMDataStructure</td><td><tt>.o</tt></td>
-    <td>Data structure analysis passes.</td></tr>
-  <tr><td>LLVMipa</td><td><tt>.a</tt></td>
-    <td>Inter-procedural analysis passes.</td></tr>
-
-  <tr><th colspan="3">Transformation Libraries</th></tr>
-  <tr><td>LLVMInstrumentation</td><td><tt>.a</tt></td>
-    <td>Instrumentation passes.</td></tr>
-  <tr><td>LLVMipo</td><td><tt>.a</tt></td>
-    <td>All inter-procedural optimization passes.</td></tr>
-  <tr><td>LLVMScalarOpts</td><td><tt>.a</tt></td>
-    <td>All scalar optimization passes.</td></tr>
-  <tr><td>LLVMTransformUtils</td><td><tt>.a</tt></td>
-    <td>Transformation utilities used by many passes.</td></tr>
-
-  <tr><th colspan="3">Code Generation Libraries </th></tr>
-  <tr><td>LLVMCodeGen</td><td><tt>.o</tt></td>
-    <td>Native code generation infrastructure</td></tr>
-  <tr><td>LLVMSelectionDAG</td><td><tt>.o</tt></td>
-    <td>Aggressive instruction selector for directed acyclic graphs</td></tr>
-
-  <tr><th colspan="3">Target Libraries</th></tr>
-  <tr><td>LLVMARM</td><td><tt>.o</tt></td>
-    <td>Code generation for ARM architecture</td></tr>
-  <tr><td>LLVMCBackend</td><td><tt>.o</tt></td>
-    <td>'C' language code generator.</td></tr>
-  <tr><td>LLVMPowerPC</td><td><tt>.o</tt></td>
-    <td>Code generation for PowerPC architecture</td></tr>
-  <tr><td>LLVMSparc</td><td><tt>.o</tt></td>
-    <td>Code generation for Sparc architecture</td></tr>
-  <tr><td>LLVMTarget</td><td><tt>.a</tt></td>
-    <td>Generic code generation utilities.</td></tr>
-  <tr><td>LLVMX86</td><td><tt>.o</tt></td>
-    <td>Code generation for Intel x86 architecture</td></tr>
-
-  <tr><th colspan="3">Runtime Libraries</th></tr>
-  <tr><td>LLVMInterpreter</td><td><tt>.o</tt></td>
-    <td>Bitcode Interpreter</td></tr>
-  <tr><td>LLVMJIT</td><td><tt>.o</tt></td>
-    <td>Bitcode JIT Compiler</td></tr>
-  <tr><td>LLVMExecutionEngine</td><td><tt>.o</tt></td>
-    <td>Virtual machine engine</td></tr>
-</table>
-</div>
-
-<!-- ======================================================================= -->
-<h2><a name="dependencies">Using llvm-config</a></h2>
-<div>
-  <p>The <tt>llvm-config</tt> tool is a perl script that produces on its output
-  various kinds of information. For example, the source or object directories 
-  used to build LLVM can be accessed by passing options to <tt>llvm-config</tt>.
-  For complete details on this tool, please see the
-  <a href="CommandGuide/html/llvm-config.html">manual page</a>.</p>
-  <p>To understand the relationships between libraries, the <tt>llvm-config</tt>
-  can be very useful. If all you know is that you want certain libraries to
-  be available, you can generate the complete set of libraries to link with
-  using one of four options, as below:</p>
-  <ol>
-    <li><tt>--ldflags</tt>. This generates the command line options necessary to
-    be passed to the <tt>ld</tt> tool in order to link with LLVM. Most notably,
-    the <tt>-L</tt> option is provided to specify a library search directory 
-    that contains the LLVM libraries.</li>
-    <li><tt>--libs</tt>. This generates command line options suitable for
-    use with a gcc-style linker. That is, libraries are given with a -l option
-    and object files are given with a full path.</li>
-    <li><tt>--libnames</tt>. This generates a list of just the library file
-    names. If you know the directory in which these files reside (see --ldflags)
-    then you can find the libraries there.</li>
-    <li><tt>--libfiles</tt>. This generates the full path names of the
-    LLVM library files.</li>
-  </ol>
-  <p>If you wish to delve further into how <tt>llvm-config</tt> generates the
-  correct order (based on library dependencies), please see the tool named
-  <tt>GenLibDeps.pl</tt> in the <tt>utils</tt> source directory of LLVM.</p>
-
-  <!-- =======NOTE: =========================================================-->
-  <!-- === The following graphs and <dl> list are generated automatically ===-->
-  <!-- === by the util named GenLibDeps.pl in the llvm/utils directory.   ===-->
-  <!-- === This should be updated whenever new libraries are added,       ===-->
-  <!-- === removed, or changed                                            ===-->
-  <!-- =======NOTE: =========================================================-->
-  <h3>Dependency Relationships Of Libraries</h3>
-  <p>This graph shows the dependency of archive libraries on other archive 
-  libraries or objects. Where a library has both archive and object forms, only
-  the archive form is shown.</p>
-  <img src="img/libdeps.gif" alt="Library Dependencies">
-  <h3>Dependency Relationships Of Object Files</h3>
-  <p>This graph shows the dependency of object files on archive libraries or 
-  other objects. Where a library has both object and archive forms, only the 
-  dependency to the archive form is shown.</p> 
-  <img src="img/objdeps.gif" alt="Object File Dependencies">
-  <p>The following list shows the dependency relationships between libraries in
-  textual form. The information is the same as shown on the graphs but arranged
-  alphabetically.</p>
-<dl>
-  <dt><b>libLLVMAnalysis.a</b></dt><dd><ul>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-  </ul></dd>
-  <dt><b>libLLVMArchive.a</b></dt><dd><ul>
-    <li>libLLVMBCReader.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMAsmParser.a</b></dt><dd><ul>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMBCReader.a</b></dt><dd><ul>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMBCWriter.a</b></dt><dd><ul>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMCodeGen.a</b></dt><dd><ul>
-    <li>libLLVMAnalysis.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMScalarOpts.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-    <li>libLLVMTransformUtils.a</li>
-  </ul></dd>
-  <dt><b>libLLVMCore.a</b></dt><dd><ul>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMDebugger.a</b></dt><dd><ul>
-    <li>libLLVMBCReader.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMInstrumentation.a</b></dt><dd><ul>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMScalarOpts.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMTransformUtils.a</li>
-  </ul></dd>
-  <dt><b>libLLVMLinker.a</b></dt><dd><ul>
-    <li>libLLVMArchive.a</li>
-    <li>libLLVMBCReader.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMScalarOpts.a</b></dt><dd><ul>
-    <li>libLLVMAnalysis.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-    <li>libLLVMTransformUtils.a</li>
-  </ul></dd>
-  <dt><b>libLLVMSelectionDAG.a</b></dt><dd><ul>
-    <li>libLLVMAnalysis.a</li>
-    <li>libLLVMCodeGen.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-    <li>libLLVMTransformUtils.a</li>
-  </ul></dd>
-  <dt><b>libLLVMSupport.a</b></dt><dd><ul>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMbzip2.a</li>
-  </ul></dd>
-  <dt><b>libLLVMSystem.a</b></dt><dd>
-  </dd>
-  <dt><b>libLLVMTarget.a</b></dt><dd><ul>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMTransformUtils.a</b></dt><dd><ul>
-    <li>libLLVMAnalysis.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-    <li>libLLVMipa.a</li>
-  </ul></dd>
-  <dt><b>libLLVMbzip2.a</b></dt><dd>
-  </dd>
-  <dt><b>libLLVMipa.a</b></dt><dd><ul>
-    <li>libLLVMAnalysis.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-  </ul></dd>
-  <dt><b>libLLVMipo.a</b></dt><dd><ul>
-    <li>libLLVMAnalysis.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-    <li>libLLVMTransformUtils.a</li>
-    <li>libLLVMipa.a</li>
-  </ul></dd>
-  <dt><b>libLLVMlto.a</b></dt><dd><ul>
-    <li>libLLVMAnalysis.a</li>
-    <li>libLLVMBCReader.a</li>
-    <li>libLLVMBCWriter.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMLinker.a</li>
-    <li>libLLVMScalarOpts.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-    <li>libLLVMipa.a</li>
-    <li>libLLVMipo.a</li>
-  </ul></dd>
-  <dt><b>LLVMARM.o</b></dt><dd><ul>
-    <li>libLLVMCodeGen.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSelectionDAG.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-  </ul></dd>
-  <dt><b>LLVMCBackend.o</b></dt><dd><ul>
-    <li>libLLVMAnalysis.a</li>
-    <li>libLLVMCodeGen.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMScalarOpts.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-    <li>libLLVMTransformUtils.a</li>
-    <li>libLLVMipa.a</li>
-  </ul></dd>
-  <dt><b>LLVMExecutionEngine.o</b></dt><dd><ul>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-  </ul></dd>
-  <dt><b>LLVMInterpreter.o</b></dt><dd><ul>
-    <li>LLVMExecutionEngine.o</li>
-    <li>libLLVMCodeGen.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-  </ul></dd>
-  <dt><b>LLVMJIT.o</b></dt><dd><ul>
-    <li>LLVMExecutionEngine.o</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-  </ul></dd>
-  <dt><b>LLVMPowerPC.o</b></dt><dd><ul>
-    <li>libLLVMCodeGen.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSelectionDAG.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-  </ul></dd>
-  <dt><b>LLVMSparc.o</b></dt><dd><ul>
-    <li>libLLVMCodeGen.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSelectionDAG.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-  </ul></dd>
-  <dt><b>LLVMX86.o</b></dt><dd><ul>
-    <li>libLLVMCodeGen.a</li>
-    <li>libLLVMCore.a</li>
-    <li>libLLVMSelectionDAG.a</li>
-    <li>libLLVMSupport.a</li>
-    <li>libLLVMSystem.a</li>
-    <li>libLLVMTarget.a</li>
-  </ul></dd>
-</dl>
-</div>
-
-<!-- ======================================================================= -->
-<h2><a name="rot">Linkage Rules Of Thumb</a></h2>
-<div>
-	<p>This section contains various "rules of thumb" about what files you
-	should link into your programs.</p>
-<!-- ======================================================================= -->
-<h3>
-  <a name="always">Always Link LLVMCore, LLVMSupport, and LLVMSystem</a>
-</h3>
-<div>
-  <p>No matter what you do with LLVM, the last three entries in the value of 
-  your LLVMLIBS make variable should always be: 
-  <tt>LLVMCore LLVMSupport.a LLVMSystem.a</tt>. There are no <tt>LLVM</tt> 
-  programs that don't depend on these three.</p>
-</div>
-<!-- ======================================================================= -->
-<h3>
-  <a name="onlyone">Never link both archive and re-linked library</a>
-</h3>
-<div>
-  <p>There is never any point to linking both the re-linked (<tt>.o</tt>) and
-  the archive (<tt>.a</tt>) versions of a library. Since the re-linked version
-  includes the entire library, the archive version will not resolve any symbols.
-  You could even end up with link error if you place the archive version before
-  the re-linked version on the linker's command line.</p>
-</div>
-
-</div>
-
-<!-- ======================================================================= -->
-<hr>
-<div class="doc_footer">
-<address>
-  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
-    src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
-  <a href="http://validator.w3.org/check/referer"><img
-    src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
-  <a href="mailto:rspencer at x10sys.com">Reid Spencer</a>
-</address>
-<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a> 
-<br>Last modified: $Date$ </div>
-</body>
-</html>
-<!-- vim: sw=2 ts=2 ai
--->

Modified: llvm/trunk/docs/index.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/index.html?rev=143542&r1=143541&r2=143542&view=diff
==============================================================================
--- llvm/trunk/docs/index.html (original)
+++ llvm/trunk/docs/index.html Wed Nov  2 10:56:55 2011
@@ -167,9 +167,6 @@
 <li><a href="ExtendingLLVM.html">Extending LLVM</a> - Look here to see how
 to add instructions and intrinsics to LLVM.</li>
 
-<li><a href="UsingLibraries.html">Using LLVM Libraries</a> - Look here to
-understand how to use the libraries produced when LLVM is compiled.</li>
-
 <li><a href="HowToReleaseLLVM.html">How To Release LLVM To The Public</a> - This
 is a guide to preparing LLVM releases. Most developers can ignore it.</li>
 





More information about the llvm-commits mailing list