/usr/share/doc/llvm-3.6-doc/html/Lexicon.html is in llvm-3.6-doc 1:3.6-2ubuntu1~trusty2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>The LLVM Lexicon — LLVM 3.6 documentation</title>
<link rel="stylesheet" href="_static/llvm-theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '3.6',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="LLVM 3.6 documentation" href="index.html" />
<link rel="next" title="How To Add Your Build Configuration To LLVM Buildbot Infrastructure" href="HowToAddABuilder.html" />
<link rel="prev" title="Frequently Asked Questions (FAQ)" href="FAQ.html" />
<style type="text/css">
table.right { float: right; margin-left: 20px; }
table.right td { border: 1px solid #ccc; }
</style>
</head>
<body>
<div class="logo">
<a href="index.html">
<img src="_static/logo.png"
alt="LLVM Logo" width="250" height="88"/></a>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="HowToAddABuilder.html" title="How To Add Your Build Configuration To LLVM Buildbot Infrastructure"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="FAQ.html" title="Frequently Asked Questions (FAQ)"
accesskey="P">previous</a> |</li>
<li><a href="http://llvm.org/">LLVM Home</a> | </li>
<li><a href="index.html">Documentation</a>»</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="body">
<div class="section" id="the-llvm-lexicon">
<h1>The LLVM Lexicon<a class="headerlink" href="#the-llvm-lexicon" title="Permalink to this headline">¶</a></h1>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">This document is a work in progress!</p>
</div>
<div class="section" id="definitions">
<h2>Definitions<a class="headerlink" href="#definitions" title="Permalink to this headline">¶</a></h2>
<div class="section" id="a">
<h3>A<a class="headerlink" href="#a" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>ADCE</strong></dt>
<dd>Aggressive Dead Code Elimination</dd>
<dt><strong>AST</strong></dt>
<dd><p class="first">Abstract Syntax Tree.</p>
<p>Due to Clang’s influence (mostly the fact that parsing and semantic
analysis are so intertwined for C and especially C++), the typical
working definition of AST in the LLVM community is roughly “the
compiler’s first complete symbolic (as opposed to textual)
representation of an input program”.
As such, an “AST” might be a more general graph instead of a “tree”
(consider the symbolic representation for the type of a typical “linked
list node”). This working definition is closer to what some authors
call an “annotated abstract syntax tree”.</p>
<p class="last">Consult your favorite compiler book or search engine for more details.</p>
</dd>
</dl>
</div>
<div class="section" id="b">
<h3>B<a class="headerlink" href="#b" title="Permalink to this headline">¶</a></h3>
<dl class="docutils" id="lexicon-bb-vectorization">
<dt><strong>BB Vectorization</strong></dt>
<dd>Basic-Block Vectorization</dd>
<dt><strong>BURS</strong></dt>
<dd>Bottom Up Rewriting System — A method of instruction selection for code
generation. An example is the <a class="reference external" href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd>
</dl>
</div>
<div class="section" id="c">
<h3>C<a class="headerlink" href="#c" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>CSE</strong></dt>
<dd>Common Subexpression Elimination. An optimization that removes common
subexpression compuation. For example <tt class="docutils literal"><span class="pre">(a+b)*(a+b)</span></tt> has two subexpressions
that are the same: <tt class="docutils literal"><span class="pre">(a+b)</span></tt>. This optimization would perform the addition
only once and then perform the multiply (but only if it’s computationally
correct/safe).</dd>
</dl>
</div>
<div class="section" id="d">
<h3>D<a class="headerlink" href="#d" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>DAG</strong></dt>
<dd>Directed Acyclic Graph</dd>
</dl>
<dl class="docutils" id="derived-pointers">
<span id="derived-pointer"></span><dt><strong>Derived Pointer</strong></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 class="reference internal" href="#safe-point">safe point</a>. This term is used in opposition to <a class="reference internal" href="#object-pointer">object pointer</a>.</dd>
<dt><strong>DSA</strong></dt>
<dd>Data Structure Analysis</dd>
<dt><strong>DSE</strong></dt>
<dd>Dead Store Elimination</dd>
</dl>
</div>
<div class="section" id="f">
<h3>F<a class="headerlink" href="#f" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>FCA</strong></dt>
<dd>First Class Aggregate</dd>
</dl>
</div>
<div class="section" id="g">
<h3>G<a class="headerlink" href="#g" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>GC</strong></dt>
<dd>Garbage Collection. The practice of using reachability analysis instead of
explicit memory management to reclaim unused memory.</dd>
</dl>
</div>
<div class="section" id="h">
<h3>H<a class="headerlink" href="#h" title="Permalink to this headline">¶</a></h3>
<dl class="docutils" id="heap">
<dt><strong>Heap</strong></dt>
<dd>In garbage collection, the region of memory which is managed using
reachability analysis.</dd>
</dl>
</div>
<div class="section" id="i">
<h3>I<a class="headerlink" href="#i" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>IPA</strong></dt>
<dd>Inter-Procedural Analysis. Refers to any variety of code analysis that
occurs between procedures, functions or compilation units (modules).</dd>
<dt><strong>IPO</strong></dt>
<dd>Inter-Procedural Optimization. Refers to any variety of code optimization
that occurs between procedures, functions or compilation units (modules).</dd>
<dt><strong>ISel</strong></dt>
<dd>Instruction Selection</dd>
</dl>
</div>
<div class="section" id="l">
<h3>L<a class="headerlink" href="#l" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>LCSSA</strong></dt>
<dd>Loop-Closed Static Single Assignment Form</dd>
<dt><strong>LICM</strong></dt>
<dd>Loop Invariant Code Motion</dd>
<dt><strong>Load-VN</strong></dt>
<dd>Load Value Numbering</dd>
<dt><strong>LTO</strong></dt>
<dd>Link-Time Optimization</dd>
</dl>
</div>
<div class="section" id="m">
<h3>M<a class="headerlink" href="#m" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>MC</strong></dt>
<dd>Machine Code</dd>
</dl>
</div>
<div class="section" id="n">
<h3>N<a class="headerlink" href="#n" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>NFC</strong></dt>
<dd>“No functional change”. Used in a commit message to indicate that a patch
is a pure refactoring/cleanup.
Usually used in the first line, so it is visible without opening the
actual commit email.</dd>
</dl>
</div>
<div class="section" id="o">
<h3>O<a class="headerlink" href="#o" title="Permalink to this headline">¶</a></h3>
<dl class="docutils" id="object-pointers">
<span id="object-pointer"></span><dt><strong>Object Pointer</strong></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 class="reference internal" href="#derived-pointer">derived pointer</a>.</dd>
</dl>
</div>
<div class="section" id="p">
<h3>P<a class="headerlink" href="#p" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>PRE</strong></dt>
<dd>Partial Redundancy Elimination</dd>
</dl>
</div>
<div class="section" id="r">
<h3>R<a class="headerlink" href="#r" title="Permalink to this headline">¶</a></h3>
<p><strong>RAUW</strong></p>
<blockquote>
<div>Replace All Uses With. The functions <tt class="docutils literal"><span class="pre">User::replaceUsesOfWith()</span></tt>,
<tt class="docutils literal"><span class="pre">Value::replaceAllUsesWith()</span></tt>, and
<tt class="docutils literal"><span class="pre">Constant::replaceUsesOfWithOnConstant()</span></tt> 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 class="reference external" href="ProgrammersManual.html#iterating-over-def-use-use-def-chains">def/use chains</a>.</div></blockquote>
<dl class="docutils">
<dt><strong>Reassociation</strong></dt>
<dd>Rearranging associative expressions to promote better redundancy elimination
and other optimization. For example, changing <tt class="docutils literal"><span class="pre">(A+B-A)</span></tt> into <tt class="docutils literal"><span class="pre">(B+A-A)</span></tt>,
permitting it to be optimized into <tt class="docutils literal"><span class="pre">(B+0)</span></tt> then <tt class="docutils literal"><span class="pre">(B)</span></tt>.</dd>
</dl>
<dl class="docutils" id="stack-roots">
<span id="roots"></span><dt><strong>Root</strong></dt>
<dd>In garbage collection, a pointer variable lying outside of the <a class="reference internal" 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>
<dt><strong>RPO</strong></dt>
<dd>Reverse postorder</dd>
</dl>
</div>
<div class="section" id="s">
<h3>S<a class="headerlink" href="#s" title="Permalink to this headline">¶</a></h3>
<dl class="docutils" id="safe-point">
<dt><strong>Safe Point</strong></dt>
<dd>In garbage collection, it is necessary to identify <a class="reference internal" href="#stack-roots">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 class="reference internal" href="#derived-pointers">derived pointers</a> must not be retained across safe points and <a class="reference internal" href="#object-pointers">object
pointers</a> must be reloaded from stack roots.</dd>
<dt><strong>SDISel</strong></dt>
<dd>Selection DAG Instruction Selection.</dd>
<dt><strong>SCC</strong></dt>
<dd>Strongly Connected Component</dd>
<dt><strong>SCCP</strong></dt>
<dd>Sparse Conditional Constant Propagation</dd>
<dt><strong>SLP</strong></dt>
<dd>Superword-Level Parallelism, same as <a class="reference internal" href="#lexicon-bb-vectorization"><em>Basic-Block Vectorization</em></a>.</dd>
<dt><strong>SRoA</strong></dt>
<dd>Scalar Replacement of Aggregates</dd>
<dt><strong>SSA</strong></dt>
<dd>Static Single Assignment</dd>
<dt><strong>Stack Map</strong></dt>
<dd>In garbage collection, metadata emitted by the code generator which
identifies <a class="reference internal" href="#roots">roots</a> within the stack frame of an executing function.</dd>
</dl>
</div>
<div class="section" id="t">
<h3>T<a class="headerlink" href="#t" title="Permalink to this headline">¶</a></h3>
<dl class="docutils">
<dt><strong>TBAA</strong></dt>
<dd>Type-Based Alias Analysis</dd>
</dl>
</div>
</div>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="HowToAddABuilder.html" title="How To Add Your Build Configuration To LLVM Buildbot Infrastructure"
>next</a> |</li>
<li class="right" >
<a href="FAQ.html" title="Frequently Asked Questions (FAQ)"
>previous</a> |</li>
<li><a href="http://llvm.org/">LLVM Home</a> | </li>
<li><a href="index.html">Documentation</a>»</li>
</ul>
</div>
<div class="footer">
© Copyright 2003-2014, LLVM Project.
Last updated on 2018-07-24.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
</div>
</body>
</html>
|