mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16179 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			291 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			291 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!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>
 | 
						|
 | 
						|
<ol>
 | 
						|
  <li><a href="#abstract">Abstract</a></li>
 | 
						|
  <li><a href="#introduction">Introduction</a></li>
 | 
						|
  <li><a href="#files">File Contents</a></li>
 | 
						|
  <li><a href="#rot">Linkage Rules Of Thumb</a>
 | 
						|
	  <ol>
 | 
						|
			<li><a href="#always">Always Link vmcore.o, support.a</a>
 | 
						|
			<li><a href="#placeholder">Placeholder</a>
 | 
						|
		</ol>
 | 
						|
	</li>
 | 
						|
</ol>
 | 
						|
 | 
						|
<div class="doc_author">
 | 
						|
  <p>Written by <a href="mailto:rspencer@x10sys.com">Reid Spencer</a></p>
 | 
						|
</div>
 | 
						|
 | 
						|
<!-- ======================================================================= -->
 | 
						|
<div class="doc_section"><a name="abstract">Abstract</a></div>
 | 
						|
<div class="doc_text">
 | 
						|
<p>This document describes the contents of the many objects files and libraries
 | 
						|
that are produced by compiling LLVM. To make use of LLVM this information is 
 | 
						|
needed in order to understand what files should be linked into your program.
 | 
						|
</p>
 | 
						|
</div>
 | 
						|
<!-- ======================================================================= -->
 | 
						|
<div class="doc_section"> <a name="introduction">Introduction</a></div>
 | 
						|
<div class="doc_text">
 | 
						|
<p>If you're writing a compiler, virtual machine, or any other utility for
 | 
						|
	 LLVM, you'll need to figure out which of the many .a (archive) and .o
 | 
						|
	 (object) files you will need to link with to be successful. An
 | 
						|
	 understanding of the contents of these files and their inter-relationships
 | 
						|
	 will be useful in coming up with an optimal specification for the objects
 | 
						|
	 and libraries to link with. 
 | 
						|
</p>
 | 
						|
<p>The purpose of this document is to hopefully reduce some of the trial and
 | 
						|
   error that the author experienced in using LLVM.
 | 
						|
</p>
 | 
						|
</div>
 | 
						|
<!-- ======================================================================= -->
 | 
						|
<div class="doc_section"><a name="files"></a>File Contents</div>
 | 
						|
<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 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><h2><u>Library</u></h2></td>
 | 
						|
	<td><h2><u>Description</u></h2></td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libipo.a</td>
 | 
						|
	<td>
 | 
						|
		An archive of all interprocedural optimizations.
 | 
						|
	</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libscalaropts.a</td>
 | 
						|
	<td>
 | 
						|
		An archive of all scalar optimizations.
 | 
						|
	</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libtransforms.a</td>
 | 
						|
	<td>Uncategorized transformations.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libtarget.a</td>
 | 
						|
	<td>An archive containing generic code generator support.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libanalysis.a</td>
 | 
						|
	<td>An archive containing intraprocedural analyses.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libdatastructure.a</td>
 | 
						|
	<td>An archive containing Data Structure Analysis.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libinstrument.a</td>
 | 
						|
	<td>Intraprocedural instrumentation and utilities.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libsparcv9regalloc.a</td>
 | 
						|
	<td>SparcV9 graph-coloring register allocator.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libipa.a</td>
 | 
						|
	<td>An archive containing interprocedural analyses</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libtransformutils.a</td>
 | 
						|
	<td>Utility functions for transformations.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>libsupport.a</td>
 | 
						|
	<td>General support utilities</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td><h2><u>Object File</u></h2></td>
 | 
						|
	<td><h2><u>Description</u></h2></td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>support.o</td>
 | 
						|
	<td>General support utilities</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>asmparser.o</td>
 | 
						|
	<td>Assembler Parser</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>bcreader.o</td>
 | 
						|
	<td>Bytecode Reader</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>bcwriter.o</td>
 | 
						|
	<td>Bytecode Writer</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>sched.o</td>
 | 
						|
	<td>SparcV9 instruction scheduler</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>selectiondag.o</td>
 | 
						|
	<td>Aggressive instruction selector for Directed Acyclic Graphs</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>transformutils.o</td>
 | 
						|
	<td>Utilities for code transformations</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>ipa.o</td>
 | 
						|
	<td>Interprocedural Analyses</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>sparcv9select.o</td>
 | 
						|
	<td>SparcV9 instruction selector</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>cwriter.o</td>
 | 
						|
	<td>"C" Code Writer</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>profpaths.o</td>
 | 
						|
	<td>Path profiling instrumentation</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>sparcv9regalloc.o</td>
 | 
						|
	<td>SparcV9 graph-coloring register allocator</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>instrument.o</td>
 | 
						|
	<td>Intraprocedural instrumentation and utilities.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>datastructure.o</td>
 | 
						|
	<td>Data Structure Analysis</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>codegen.o</td>
 | 
						|
	<td>Native code generation</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>sparcv9livevar.o</td>
 | 
						|
	<td>SparcV9 Live Variable Analysis</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>vmcore.o</td>
 | 
						|
	<td>Virtual Machine Core</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>lli-interpreter.o</td>
 | 
						|
	<td>Interpreter for LLVM ByteCode</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>lli-jit.o</td>
 | 
						|
	<td>
 | 
						|
		Just-In-Time Compiler For LLVM ByteCode
 | 
						|
	</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>executionengine.o</td>
 | 
						|
	<td>Engine for LLI</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>debugger.o</td>
 | 
						|
	<td>Source Level Debugging Support</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>analysis.o</td>
 | 
						|
	<td>General framework for Analysis</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>sparcv9.o</td>
 | 
						|
	<td>SparcV9 backend</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>target.o</td>
 | 
						|
	<td>Generic backend support</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>transforms.o</td>
 | 
						|
	<td>Uncategorized transformations.</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>x86.o</td>
 | 
						|
	<td>Intel x86 backend</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>powerpc.o</td>
 | 
						|
	<td>PowerPC backend</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>scalaropts.o</td>
 | 
						|
	<td>Optimizations For Scalars</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>ipo.o</td>
 | 
						|
	<td>Interprocedural Optimizations</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>trace.o</td>
 | 
						|
	<td>Support For Tracing/Debugging?</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>profile_rt.o</td>
 | 
						|
	<td>Runtime Library For Profiler</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>sample.o</td>
 | 
						|
	<td>Sample Program ?</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>stkr_compiler.o</td>
 | 
						|
	<td>Stacker Language Compiler Library</td>
 | 
						|
</tr>
 | 
						|
<tr class="doc_table">
 | 
						|
	<td>stkr_runtime.o</td>
 | 
						|
	<td>Stacker Language Runtime Library</td>
 | 
						|
</tr>
 | 
						|
</table>
 | 
						|
</div>
 | 
						|
<p></p>
 | 
						|
<!-- ======================================================================= -->
 | 
						|
<div class="doc_section"><a name="rot">Linkage Rules Of Thumb</a></div>
 | 
						|
<div class="doc_text">
 | 
						|
	<p>This section contains various "rules of thumb" about what files you
 | 
						|
	should link into your programs.</p>
 | 
						|
</div>
 | 
						|
<!-- ======================================================================= -->
 | 
						|
<div class="doc_subsection"><a name="always">Always Link vmcore.o support.a</a>
 | 
						|
</div>
 | 
						|
<div class="doc_text">
 | 
						|
	<p>No matter what you do with LLVM, you'll always need to link with vmcore.o 
 | 
						|
	and support.a.</p>
 | 
						|
</div>
 | 
						|
<!-- ======================================================================= -->
 | 
						|
<div class="doc_subsection"><a name="Placeholder">Placeholder</a></div>
 | 
						|
<div class="doc_text">
 | 
						|
	<p>Need more rules of thumb here.</p>
 | 
						|
</div>
 | 
						|
<!-- ======================================================================= -->
 | 
						|
<hr>
 | 
						|
<div class="doc_footer">
 | 
						|
<address><a href="mailto:rspencer@x10sys.com">Reid Spencer</a></address>
 | 
						|
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a> 
 | 
						|
<br>Last modified: $Date$ </div>
 | 
						|
</body>
 | 
						|
</html>
 | 
						|
<!-- vim: sw=2 ts=2 ai
 | 
						|
-->
 |