Reduce code growth implied by the tail duplication pass by not duplicating
[oota-llvm.git] / docs / ObjectFiles.html
index c38a985eebee41afe36c5b7b7a732a30c9fd2b5b..1fb5fc84c90985b580287021eb897c97117ac63a 100644 (file)
@@ -1,12 +1,20 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
+                      "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html>
 <head>
        <title>Object Files: Understanding The Result Of LLVM Compilation</title>
   <link rel="stylesheet" href="llvm.css" type="text/css">
+  <style>
+  <!--
+    td { border: 2px solid gray }
+  -->
+  </style>
 </head>
 <body>
-<div class="doc_title">Object Files: Understanding The Result Of LLVM Compilation</div>
-<hr>
+<div class="doc_title">
+  Object Files: Understanding The Result Of LLVM Compilation
+</div>
+
 <ol>
   <li><a href="#abstract">Abstract</a></li>
   <li><a href="#introduction">Introduction</a></li>
@@ -23,8 +31,6 @@
   <p>Written by <a href="mailto:rspencer@x10sys.com">Reid Spencer</a></p>
 </div>
 
-<hr>
-
 <!-- ======================================================================= -->
 <div class="doc_section"><a name="abstract">Abstract</a></div>
 <div class="doc_text">
@@ -52,220 +58,204 @@ needed in order to understand what files should be linked into your program.
 <div class="doc_text">
 <p>The table below provides a summary of the basic contents of each file.</p>
 <table class="doc_table" 
-       style="width:80%; text-align: left; border: 2px solid blue; border-collapse: collapse;">
+       style="width:80%; text-align: left; border: 2px solid gray; border-collapse: collapse;">
 <tr class="doc_table">
        <td colspan="2" class="doc_section">Summary Of LLVM Library And Object Files
        </td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue"><h2><u>Library</u></h2></td>
-       <td style="border: 2px solid blue"><h2><u>Description</u></h2></td>
+       <td><h2><u>Library</u></h2></td>
+       <td><h2><u>Description</u></h2></td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libipo.a</td>
-       <td style="border: 2px solid blue">
-               An archive of all inter-procedural optimizations.
+       <td>libipo.a</td>
+       <td>
+               An archive of all interprocedural optimizations.
        </td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libscalaropts.a</td>
-       <td style="border: 2px solid blue">
+       <td>libscalaropts.a</td>
+       <td>
                An archive of all scalar optimizations.
        </td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libtransforms.a</td>
-       <td style="border: 2px solid blue">
-               An archive of just the level raise pass.
-       </td>
-</tr>
-<tr class="doc_table">
-       <td style="border: 2px solid blue">libtarget.a</td>
-       <td style="border: 2px solid blue">
-               An archive containing code generator support for describing
-               target architectures.
-       </td>
+       <td>libtransforms.a</td>
+       <td>Uncategorized transformations.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libanalysis.a</td>
-       <td style="border: 2px solid blue">
-               An archive containing intra-procedural analyses.
-       </td>
+       <td>libtarget.a</td>
+       <td>An archive containing generic code generator support.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libdatastructure.a</td>
-       <td style="border: 2px solid blue">
-               An archive containing optimizations for data structures.
-       </td>
+       <td>libanalysis.a</td>
+       <td>An archive containing intraprocedural analyses.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libinstrument.a</td>
-       <td style="border: 2px solid blue">No idea.</td>
+       <td>libdatastructure.a</td>
+       <td>An archive containing Data Structure Analysis.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libregalloc.a</td>
-       <td style="border: 2px solid blue">Register Allocation code.</td>
+       <td>libinstrument.a</td>
+       <td>Intraprocedural instrumentation and utilities.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libipa.a</td>
-       <td style="border: 2px solid blue">
-               An archive containing inter-procedural analyses</td>
+       <td>libsparcv9regalloc.a</td>
+       <td>SparcV9 graph-coloring register allocator.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libtransformutils.a</td>
-       <td style="border: 2px solid blue">
-               Utiltities for transformations?
-       </td>
+       <td>libipa.a</td>
+       <td>An archive containing interprocedural analyses</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libsupport.a</td>
-       <td style="border: 2px solid blue">General support utilities</td>
+       <td>libtransformutils.a</td>
+       <td>Utility functions for transformations.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">libevar.a</td>
-       <td style="border: 2px solid blue">Live variable analysis for SPARC</td>
+       <td>libsupport.a</td>
+       <td>General support utilities</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue"><h2><u>Object File</u></h2></td>
-       <td style="border: 2px solid blue"><h2><u>Description</u></h2></td>
+       <td><h2><u>Object File</u></h2></td>
+       <td><h2><u>Description</u></h2></td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">support.o</td>
-       <td style="border: 2px solid blue">General support utilities</td>
+       <td>support.o</td>
+       <td>General support utilities</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">asmparser.o</td>
-       <td style="border: 2px solid blue">Assembler Parser</td>
+       <td>asmparser.o</td>
+       <td>Assembler Parser</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">bcreader.o</td>
-       <td style="border: 2px solid blue">Byte Code Reader</td>
+       <td>bcreader.o</td>
+       <td>Bytecode Reader</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">bcwriter.o</td>
-       <td style="border: 2px solid blue">Byte Code Writer</td>
+       <td>bcwriter.o</td>
+       <td>Bytecode Writer</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">sched.o</td>
-       <td style="border: 2px solid blue">SPARC instruction scheduler</td>
+       <td>sched.o</td>
+       <td>SparcV9 instruction scheduler</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">selectiondag.o</td>
-       <td style="border: 2px solid blue">Aggressive instruction selector for Directed Acyclic Graphs</td>
+       <td>selectiondag.o</td>
+       <td>Aggressive instruction selector for Directed Acyclic Graphs</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">transformutils.o</td>
-       <td style="border: 2px solid blue">Utilities for code transformations</td>
+       <td>transformutils.o</td>
+       <td>Utilities for code transformations</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">ipa.o</td>
-       <td style="border: 2px solid blue">Inter-Procedural Analysis Optimizations</td>
+       <td>ipa.o</td>
+       <td>Interprocedural Analyses</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">select.o</td>
-       <td style="border: 2px solid blue">SPARC instruction selector</td>
+       <td>sparcv9select.o</td>
+       <td>SparcV9 instruction selector</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">cwriter.o</td>
-       <td style="border: 2px solid blue">"C" Code Writer</td>
+       <td>cwriter.o</td>
+       <td>"C" Code Writer</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">profpaths.o</td>
-       <td style="border: 2px solid blue">Path profiling instrumentation</td>
+       <td>profpaths.o</td>
+       <td>Path profiling instrumentation</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">regalloc.o</td>
-       <td style="border: 2px solid blue">Register Allocation</td>
+       <td>sparcv9regalloc.o</td>
+       <td>SparcV9 graph-coloring register allocator</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">instrument.o</td>
-       <td style="border: 2px solid blue">Instrumentation? Of What?</td>
+       <td>instrument.o</td>
+       <td>Intraprocedural instrumentation and utilities.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">datastructure.o</td>
-       <td style="border: 2px solid blue">Data Structure Analysis</td>
+       <td>datastructure.o</td>
+       <td>Data Structure Analysis</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">codegen.o</td>
-       <td style="border: 2px solid blue">Native code generation</td>
+       <td>codegen.o</td>
+       <td>Native code generation</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">livevar.o</td>
-       <td style="border: 2px solid blue">Live Variable Analysis</td>
+       <td>sparcv9livevar.o</td>
+       <td>SparcV9 Live Variable Analysis</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">vmcore.o</td>
-       <td style="border: 2px solid blue">Virtual Machine Core</td>
+       <td>vmcore.o</td>
+       <td>Virtual Machine Core</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">lli-interpreter.o</td>
-       <td style="border: 2px solid blue">Interpreter for LLVM ByteCode</td>
+       <td>lli-interpreter.o</td>
+       <td>Interpreter for LLVM ByteCode</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">lli-jit.o</td>
-       <td style="border: 2px solid blue">
+       <td>lli-jit.o</td>
+       <td>
                Just-In-Time Compiler For LLVM ByteCode
        </td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">executionengine.o</td>
-       <td style="border: 2px solid blue">Engine for LLI</td>
+       <td>executionengine.o</td>
+       <td>Engine for LLI</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">debugger.o</td>
-       <td style="border: 2px solid blue">Source Level Debugging Support</td>
+       <td>debugger.o</td>
+       <td>Source Level Debugging Support</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">analysis.o</td>
-       <td style="border: 2px solid blue">General Framework For Analysis?</td>
+       <td>analysis.o</td>
+       <td>General framework for Analysis</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">sparc.o</td>
-       <td style="border: 2px solid blue">Sun SPARC Processor Specific</td>
+       <td>sparcv9.o</td>
+       <td>SparcV9 backend</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">target.o</td>
-       <td style="border: 2px solid blue">Target Machine Support?</td>
+       <td>target.o</td>
+       <td>Generic backend support</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">transforms.o</td>
-       <td style="border: 2px solid blue">Code Transformations</td>
+       <td>transforms.o</td>
+       <td>Uncategorized transformations.</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">x86.o</td>
-       <td style="border: 2px solid blue">Intel x86 Processor Specific</td>
+       <td>x86.o</td>
+       <td>Intel x86 backend</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">powerpc.o</td>
-       <td style="border: 2px solid blue">PowerPC Processor Specific</td>
+       <td>powerpc.o</td>
+       <td>PowerPC backend</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">scalaropts.o</td>
-       <td style="border: 2px solid blue">Optimizations For Scalars</td>
+       <td>scalaropts.o</td>
+       <td>Optimizations For Scalars</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">ipo.o</td>
-       <td style="border: 2px solid blue">Inter-Procedural Optimization</td>
+       <td>ipo.o</td>
+       <td>Interprocedural Optimizations</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">trace.o</td>
-       <td style="border: 2px solid blue">Support For Tracing/Debugging?</td>
+       <td>trace.o</td>
+       <td>Support For Tracing/Debugging?</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">profile_rt.o</td>
-       <td style="border: 2px solid blue">Runtime Library For Profiler</td>
+       <td>profile_rt.o</td>
+       <td>Runtime Library For Profiler</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">sample.o</td>
-       <td style="border: 2px solid blue">Sample Program ?</td>
+       <td>sample.o</td>
+       <td>Sample Program ?</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">stkr_compiler.o</td>
-       <td style="border: 2px solid blue">Stacker Language Compiler Library</td>
+       <td>stkr_compiler.o</td>
+       <td>Stacker Language Compiler Library</td>
 </tr>
 <tr class="doc_table">
-       <td style="border: 2px solid blue">stkr_runtime.o</td>
-       <td style="border: 2px solid blue">Stacker Language Runtime Library</td>
+       <td>stkr_runtime.o</td>
+       <td>Stacker Language Runtime Library</td>
 </tr>
 </table>
 </div>