<!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>The LLVM Lexicon</title>
  <link rel="stylesheet" href="llvm.css" type="text/css">
  <meta name="author" content="Various">
  <meta name="description" 
  content="A glossary of terms used with the LLVM project.">
</head>
<body>
<div class="doc_title">The LLVM Lexicon</div>
<p class="doc_warning">NOTE: This document is a work in progress!</p>
<!-- *********************************************************************** -->
<div class="doc_section">Table Of Contents</div>
<!-- *********************************************************************** -->
<div class="doc_text">
  <table>
    <tr><th colspan="8"><b>- <a href="#A">A</a> -</b></th></tr>
    <tr>
      <td><a href="#ADCE">ADCE</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#B">B</a> -</b></th></tr>
    <tr>
      <td><a href="#BURS">BURS</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#C">C</a> -</b></th></tr>
    <tr>
      <td><a href="#CSE">CSE</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#D">D</a> -</b></th></tr>
    <tr>
      <td><a href="#DAG">DAG</a></td>
      <td><a href="#Derived_Pointer">Derived Pointer</a></td>
      <td><a href="#DSA">DSA</a></td>
      <td><a href="#DSE">DSE</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#G">G</a> -</b></th></tr>
    <tr>
      <td><a href="#GC">GC</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#I">I</a> -</b></th></tr>
    <tr>
      <td><a href="#IPA">IPA</a></td>
      <td><a href="#IPO">IPO</a></td>
      <td><a href="#ISel">ISel</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#L">L</a> -</b></th></tr>
    <tr>
      <td><a href="#LCSSA">LCSSA</a></td>
      <td><a href="#LICM">LICM</a></td>
      <td><a href="#Load-VN">Load-VN</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#O">O</a> -</b></th></tr>
    <tr>
      <td><a href="#Object_Pointer">Object Pointer</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#P">P</a> -</b></th></tr>
    <tr>
      <td><a href="#PRE">PRE</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#R">R</a> -</b></th></tr>
    <tr>
      <td><a href="#RAUW">RAUW</a></td>
      <td><a href="#Reassociation">Reassociation</a></td>
      <td><a href="#Root">Root</a></td>
    </tr>
    <tr><th colspan="8"><b>- <a href="#S">S</a> -</b></th></tr>
    <tr>
      <td><a href="#Safe_Point">Safe Point</a></td>
      <td><a href="#SCC">SCC</a></td>
      <td><a href="#SCCP">SCCP</a></td>
      <td><a href="#SDISel">SDISel</a></td>
      <td><a href="#SRoA">SRoA</a></td>
      <td><a href="#Stack_Map">Stack Map</a></td>
    </tr>
  </table>
</div>

<!-- *********************************************************************** -->
<div class="doc_section">Definitions</div>
<!-- *********************************************************************** -->
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="A">- A -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="ADCE"><b>ADCE</b></a></dt>
    <dd>Aggressive Dead Code Elimination</dd>
  </dl>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="B">- B -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="BURS"><b>BURS</b></a></dt>
    <dd>Bottom Up Rewriting System&mdash;A method of instruction selection for
        code generation.  An example is the <a 
href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd>
  </dl>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="C">- C -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="CSE"><b>CSE</b></a></dt>
    <dd>Common Subexpression Elimination. An optimization that removes common
    subexpression compuation. For example <tt>(a+b)*(a+b)</tt> has two
    subexpressions that are the same: <tt>(a+b)</tt>. This optimization would
    perform the addition only once and then perform the multiply (but only if
    it's compulationally correct/safe).
  </dl>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="D">- D -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="DAG"><b>DAG</b></a></dt>
    <dd>Directed Acyclic Graph</dd>
    <dt><a name="Derived_Pointer"><b>Derived Pointer</b></a></dt>
    <dd>A pointer to the interior of an object, such that a garbage collector
    is unable to use the pointer for reachability analysis. While a derived
    pointer is live, the corresponding object pointer must be kept in a root,
    otherwise the collector might free the referenced object. With copying
    collectors, derived pointers pose an additional hazard that they may be
    invalidated at any <a href="Safe_Point">safe point</a>. This term is used in
    opposition to <a href="#Object_Pointer">object pointer</a>.</dd>
    <dt><a name="DSA"><b>DSA</b></a></dt>
    <dd>Data Structure Analysis</dd>
    <dt><a name="DSE"><b>DSE</b></a></dt>
    <dd>Dead Store Elimination</dd>
  </dl>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="G">- G -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="GC"><b>GC</b></a></dt>
    <dd>Garbage Collection. The practice of using reachability analysis instead
    of explicit memory management to reclaim unused memory.</dd>
  </dl>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="H">- H -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="Heap"><b>Heap</b></a></dt>
    <dd>In garbage collection, the region of memory which is managed using
    reachability analysis.</dd>
  </dl>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="I">- I -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="IPA"><b>IPA</b></a></dt>
    <dd>Inter-Procedural Analysis. Refers to any variety of code analysis that
    occurs between procedures, functions or compilation units (modules).</dd>
    <dt><a name="IPO"><b>IPO</b></a></dt>
    <dd>Inter-Procedural Optimization. Refers to any variety of code
    optimization that occurs between procedures, functions or compilation units
    (modules).</dd>
    <dt><a name="ISel"><b>ISel</b></a></dt>
    <dd>Instruction Selection.</dd>
  </dl>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="L">- L -</a></div>
<div class="doc_text">
  <dl>
  	<dt><a name="LCSSA"><b>LCSSA</b></a></dt>
  	<dd>Loop-Closed Static Single Assignment Form</dd>
    <dt><a name="LICM"><b>LICM</b></a></dt>
    <dd>Loop Invariant Code Motion</dd>
    <dt><a name="Load-VN"><b>Load-VN</b></a></dt>
    <dd>Load Value Numbering</dd>
  </dl>
</div>

<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="O">- O -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="Object_Pointer"><b>Object Pointer</b></a></dt>
    <dd>A pointer to an object such that the garbage collector is able to trace
    references contained within the object. This term is used in opposition to
    <a href="#Derived_Pointer">derived pointer</a>.</dd>
  </dl>
</div>

<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="P">- P -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="PRE"><b>PRE</b></a></dt>
    <dd>Partial Redundancy Elimination</dd>
  </dl>
</div>

<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="R">- R -</a></div>
<div class="doc_text">
  <dl>
  	<dt><a name="RAUW"><b>RAUW</b></a></dt> <dd>An abbreviation for Replace
  	All Uses With. The functions User::replaceUsesOfWith(), 
  	Value::replaceAllUsesWith(), and Constant::replaceUsesOfWithOnConstant()
  	implement the replacement of one Value with another by iterating over its
  	def/use chain and fixing up all of the pointers to point to the new value.
  	See also <a href="ProgrammersManual.html#iterate_chains">def/use chains</a>.
  	</dd>
    <dt><a name="Reassociation"><b>Reassociation</b></a></dt> <dd>Rearranging
    associative expressions to promote better redundancy elimination and other
    optimization.  For example, changing (A+B-A) into (B+A-A), permitting it to
    be optimized into (B+0) then (B).</dd>
    <dt><a name="Root"><b>Root</b></a></dt> <dd>In garbage collection, a
    pointer variable lying outside of the <a href="#Heap">heap</a> from which
    the collector begins its reachability analysis. In the context of code
    generation, "root" almost always refers to a "stack root" -- a local or
    temporary variable within an executing function.</dd>
  </dl>
</div>

<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="S">- S -</a></div>
<div class="doc_text">
  <dl>
    <dt><a name="Safe_Point"><b>Safe Point</b></a></dt>
    <dd>In garbage collection, it is necessary to identify <a href="#Root">stack
    roots</a> so that reachability analysis may proceed. It may be infeasible to
    provide this information for every instruction, so instead the information
    may is calculated only at designated safe points. With a copying collector,
    <a href="#Derived_Pointers">derived pointers</a> must not be retained across
    safe points and <a href="#Object_Pointers">object pointers</a> must be
    reloaded from stack roots.</dd>
    <dt><a name="SDISel"><b>SDISel</b></a></dt>
    <dd>Selection DAG Instruction Selection.</dd>
    <dt><a name="SCC"><b>SCC</b></a></dt>
    <dd>Strongly Connected Component</dd>
    <dt><a name="SCCP"><b>SCCP</b></a></dt>
    <dd>Sparse Conditional Constant Propagation</dd>
    <dt><a name="SRoA"><b>SRoA</b></a></dt>
    <dd>Scalar Replacement of Aggregates</dd>
    <dt><a name="SSA"><b>SSA</b></a></dt>
    <dd>Static Single Assignment</dd>
    <dt><a name="Stack_Map"><b>Stack Map</b></a></dt>
    <dd>In garbage collection, metadata emitted by the code generator which
    identifies <a href="#Root">roots</a> within the stack frame of an executing
    function.</dd>
  </dl>
</div>
<!-- *********************************************************************** -->
<hr>
<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="http://llvm.org/">The LLVM Team</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
<!-- vim: sw=2
-->
</body>
</html>
