Changes docs for llvm.cs.uiuc.edu -> llvm.org

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26746 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2006-03-14 05:39:39 +00:00
parent 5a588a9636
commit 05fe4b0256
30 changed files with 94 additions and 94 deletions

View File

@ -75,7 +75,7 @@ indicating that two pointers always point to the same object, might point to the
same object, or are known to never point to the same object.</p>
<p>The LLVM <a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html"><tt>AliasAnalysis</tt></a>
href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html"><tt>AliasAnalysis</tt></a>
class is the primary interface used by clients and implementations of alias
analyses in the LLVM system. This class is the common interface between clients
of alias analysis information and the implementations providing it, and is
@ -102,7 +102,7 @@ know</a>.</p>
<div class="doc_text">
<p>The <a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html"><tt>AliasAnalysis</tt></a>
href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html"><tt>AliasAnalysis</tt></a>
class defines the interface that the various alias analysis implementations
should support. This class exports two important enums: <tt>AliasResult</tt>
and <tt>ModRefResult</tt> which represent the result of an alias query or a
@ -951,7 +951,7 @@ algorithm will have a lower number of may aliases).</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -230,7 +230,7 @@ non-obvious ways. Here are some hints and tips:<p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -747,7 +747,7 @@ describes the latest version, 1.3):</p>
</ul>
<p>Note that we plan to eventually expand the target description
capabilities
of bytecode files to <a href="http://llvm.cs.uiuc.edu/PR263">target
of bytecode files to <a href="http://llvm.org/PR263">target
triples</a>.
</p>
</div>
@ -1553,7 +1553,7 @@ possible. </p>
<p>Instructions encode an opcode that identifies the kind of instruction.
Opcodes are an enumerated integer value. The specific values used depend on
the version of LLVM you're using. The opcode values are defined in the
<a href="http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm/include/llvm/Instruction.def">
<a href="http://llvm.org/cvsweb/cvsweb.cgi/llvm/include/llvm/Instruction.def">
<tt>include/llvm/Instruction.def</tt></a> file. You should check there for the
most recent definitions. The table below provides the opcodes defined as of
the writing of this document. The table associates each opcode mnemonic with
@ -2147,7 +2147,7 @@ From 1.1</a></div>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:rspencer@x10sys.com">Reid Spencer</a> and <a
href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body>

View File

@ -184,7 +184,7 @@ SPARC V9 code. It is highly recommended that you use the V8 ABI with LLVM, as
shown below. Also,
note that Solaris has trouble with various wide (multibyte) character
functions from C as referenced from C++, so we typically configure with
--disable-c-mbchar (cf. <a href="http://llvm.cs.uiuc.edu/PR206">Bug 206</a>).
--disable-c-mbchar (cf. <a href="http://llvm.org/PR206">Bug 206</a>).
</p>
<pre>
@ -312,7 +312,7 @@ Developed by:
University of Illinois at Urbana-Champaign
http://llvm.cs.uiuc.edu
http://llvm.org
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
@ -356,7 +356,7 @@ purpose. It is provided "as is" without express or implied warranty.
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
Brian Gaeke<br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -1296,7 +1296,7 @@ a character per operand with an optional special size. For example:</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -653,7 +653,7 @@ something.</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -1899,7 +1899,7 @@ tutorial.</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -814,7 +814,7 @@ optimization.</p>
href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a><a
href="mailto:rspencer@x10sys.com">Reid Spencer</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
<!-- vim: sw=2

View File

@ -252,7 +252,7 @@ processors.</li>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="http://misha.brukman.net">Misha Brukman</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -388,7 +388,7 @@ void calcTypeName(const Type *Ty,
<a href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</address>

View File

@ -89,7 +89,7 @@
</ol>
<div class="doc_author">
<p>Written by <a href="http://llvm.cs.uiuc.edu">The LLVM Team</a></p>
<p>Written by <a href="http://llvm.org">The LLVM Team</a></p>
</div>
@ -129,7 +129,7 @@ Source Initiative (OSI).</p>
<div class="answer">
<p>Yes. The modified source distribution must retain the copyright notice and
follow the three bulletted conditions listed in the <a
href="http://llvm.cs.uiuc.edu/releases/1.3/LICENSE.TXT">LLVM license</a>.</p>
href="http://llvm.org/releases/1.3/LICENSE.TXT">LLVM license</a>.</p>
</div>
<div class="question">
@ -573,7 +573,7 @@ specified for it.
<a href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -525,7 +525,7 @@ conference on LISP and functional programming.</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -1080,7 +1080,7 @@ Cummings for pointing this out!
<p>One useful source of information about the LLVM source base is the LLVM <a
href="http://www.doxygen.org">doxygen</a> documentation available at <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/">http://llvm.cs.uiuc.edu/doxygen/</a></tt>.
href="http://llvm.org/doxygen/">http://llvm.org/doxygen/</a></tt>.
The following is a brief introduction to code layout:</p>
</div>
@ -1407,7 +1407,7 @@ are code generators for parts of LLVM infrastructure.</p>
<tt><b>NightlyTestTemplate.html</b></tt> <dd>These files are used in a
cron script to generate nightly status reports of the functionality of
tools, and the results can be seen by following the appropriate link on
the <a href="http://llvm.cs.uiuc.edu/">LLVM homepage</a>.<p>
the <a href="http://llvm.org/">LLVM homepage</a>.<p>
<dt><tt><b>TableGen/</b></tt> <dd>The <tt>TableGen</tt> directory contains
the tool used to generate register descriptions, instruction set
@ -1526,9 +1526,9 @@ if you want to write something up!). For more information about LLVM, check
out:</p>
<ul>
<li><a href="http://llvm.cs.uiuc.edu/">LLVM homepage</a></li>
<li><a href="http://llvm.cs.uiuc.edu/doxygen/">LLVM doxygen tree</a></li>
<li><a href="http://llvm.cs.uiuc.edu/docs/Projects.html">Starting a Project
<li><a href="http://llvm.org/">LLVM homepage</a></li>
<li><a href="http://llvm.org/doxygen/">LLVM doxygen tree</a></li>
<li><a href="http://llvm.org/docs/Projects.html">Starting a Project
that Uses LLVM</a></li>
</ul>
@ -1545,7 +1545,7 @@ out:</p>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.x10sys.com/rspencer/">Reid Spencer</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body>

View File

@ -328,9 +328,9 @@ if you want to write something up!). For more information about LLVM, check
out:</p>
<ul>
<li><a href="http://llvm.cs.uiuc.edu/">LLVM homepage</a></li>
<li><a href="http://llvm.cs.uiuc.edu/doxygen/">LLVM doxygen tree</a></li>
<li><a href="http://llvm.cs.uiuc.edu/docs/Projects.html">Starting a Project
<li><a href="http://llvm.org/">LLVM homepage</a></li>
<li><a href="http://llvm.org/doxygen/">LLVM doxygen tree</a></li>
<li><a href="http://llvm.org/docs/Projects.html">Starting a Project
that Uses LLVM</a></li>
</ul>
@ -346,7 +346,7 @@ out:</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:jeffc@jolt-lang.org">Jeff Cohen</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body>

View File

@ -57,7 +57,7 @@ down the bug so that the person who fixes it will be able to find the problem
more easily.</p>
<p>Once you have a reduced test-case, go to <a
href="http://llvm.cs.uiuc.edu/bugs/enter_bug.cgi">the LLVM Bug Tracking
href="http://llvm.org/bugs/enter_bug.cgi">the LLVM Bug Tracking
System</a>, select the category in which the bug falls, and fill out the form
with the necessary details. The bug description should contain the following
information:</p>
@ -350,7 +350,7 @@ the following:</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</address>

View File

@ -61,7 +61,7 @@ machine code to memory. Supports one backend at a time.</p>
strong SSA-based optimization at compile-time, link-time, run-time, and
off-line, and multiple platform backends with Just-in-Time and ahead-of-time
compilation frameworks. (See our document on <a
href="http://llvm.cs.uiuc.edu/pubs/2004-01-30-CGO-LLVM.html">Lifelong
href="http://llvm.org/pubs/2004-01-30-CGO-LLVM.html">Lifelong
Code Optimization</a> for more.)</p>
<p>GCC: Many relatively mature platform backends support assembly-language code
@ -171,7 +171,7 @@ emitting machine code to memory.</p>
<hr>
<div class="doc_footer">
<address>Brian R. Gaeke</address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</div>

View File

@ -3693,7 +3693,7 @@ Debugging</a> document.
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body>

View File

@ -168,8 +168,8 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd>
src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a><a
href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a><a
href="http://llvm.cs.uiuc.edu/">The LLVM Team</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
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

View File

@ -990,7 +990,7 @@
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:rspencer@x10sys.com">Reid Spencer</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -739,7 +739,7 @@ this, and in other situations, you may find that you want to treat
most-specific common base class is <tt>Instruction</tt>, which includes lots of
less closely-related things. For these cases, LLVM provides a handy wrapper
class called <a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1CallSite.html"><tt>CallSite</tt></a>.
href="http://llvm.org/doxygen/classllvm_1_1CallSite.html"><tt>CallSite</tt></a>.
It is essentially a wrapper around an <tt>Instruction</tt> pointer, with some
methods that provide functionality common to <tt>CallInst</tt>s and
<tt>InvokeInst</tt>s.</p>
@ -2276,7 +2276,7 @@ arguments. An argument has a pointer to the parent Function.</p>
<a href="mailto:dhurjati@cs.uiuc.edu">Dinakar Dhurjati</a> and
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -451,7 +451,7 @@ Mailing List</a>.</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:criswell@uiuc.edu">John Criswell</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</address>

View File

@ -1109,7 +1109,7 @@ with a trailing <a href="#format_common_anchors">anchor</a>.
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -1404,7 +1404,7 @@ interested, here are some things that could be implemented better:</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:rspencer@x10sys.com">Reid Spencer</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -323,7 +323,7 @@
<!-- ======================================================================= -->
<div class="doc_subsection"><a name="bug">Bug 351</a></div>
<div class="doc_text">
<p>See <a href="http://llvm.cs.uiuc.edu/PR351">bug 351</a>
<p>See <a href="http://llvm.org/PR351">bug 351</a>
for further details on the progress of this work</p>
</div>
@ -337,7 +337,7 @@
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="mailto:rspencer@x10sys.com">Reid Spencer</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body>

View File

@ -559,7 +559,7 @@ should highlight the APIs in <tt>TableGen/Record.h</tt>.</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -416,7 +416,7 @@ directory to run them.</p>
<ol>
<li>cd into the llvm/projects directory</li>
<li>check out the <tt>llvm-test</tt> module with:<br/>
<tt>cvs -d :pserver:anon@llvm.cs.uiuc.edu:/var/cvs/llvm co -PR llvm-test</tt><br>
<tt>cvs -d :pserver:anon@llvm.org:/var/cvs/llvm co -PR llvm-test</tt><br>
This will get the test suite into <tt>llvm/projects/llvm-test</tt></li>
<li>configure the test suite. You can do this one of two ways:
<ol>
@ -468,7 +468,7 @@ will help you separate benign warnings from actual test failures.</p>
<div class="doc_text">
<p>
The <a href="http://llvm.cs.uiuc.edu/testresults/">LLVM Nightly Testers</a>
The <a href="http://llvm.org/testresults/">LLVM Nightly Testers</a>
automatically check out an LLVM tree, build it, run the "nightly"
program test (described above), run all of the feature and regression tests,
and then delete the checked out tree. This tester is designed to ensure that
@ -492,7 +492,7 @@ The optimized x86 Linux nightly test is run from just such a script:</p>
<pre>
#!/bin/bash
BASE=/proj/work/llvm/nightlytest
export CVSROOT=:pserver:anon@llvm.cs.uiuc.edu:/var/cvs/llvm
export CVSROOT=:pserver:anon@llvm.org:/var/cvs/llvm
export BUILDDIR=$BASE/build
export WEBDIR=$BASE/testresults
export LLVMGCCDIR=/proj/work/llvm/cfrontend/install
@ -521,7 +521,7 @@ we'll link your page to the global tester page. Thanks!</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
John T. Criswell, Reid Spencer, and Tanya Lattner<br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br/>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br/>
Last modified: $Date$
</address>
</body>

View File

@ -496,7 +496,7 @@
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:rspencer@x10sys.com">Reid Spencer</a>
</address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a>
<br>Last modified: $Date$ </div>
</body>
</html>

View File

@ -250,7 +250,7 @@ how the C backend is written.</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="http://misha.brukman.net">Misha Brukman</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</address>

View File

@ -115,7 +115,7 @@ build the analysis results that are used by these transformations, and they are,
above all, a structuring technique for compiler code.</p>
<p>All LLVM passes are subclasses of the <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1Pass.html">Pass</a></tt>
href="http://llvm.org/doxygen/classllvm_1_1Pass.html">Pass</a></tt>
class, which implement functionality by overriding virtual methods inherited
from <tt>Pass</tt>. Depending on how your pass works, you should inherit from
the <tt><a href="#ModulePass">ModulePass</a></tt>, <tt><a
@ -206,14 +206,14 @@ the pass itself.</p>
Start out with:</p>
<pre>
<b>#include</b> "<a href="http://llvm.cs.uiuc.edu/doxygen/Pass_8h-source.html">llvm/Pass.h</a>"
<b>#include</b> "<a href="http://llvm.cs.uiuc.edu/doxygen/Function_8h-source.html">llvm/Function.h</a>"
<b>#include</b> "<a href="http://llvm.org/doxygen/Pass_8h-source.html">llvm/Pass.h</a>"
<b>#include</b> "<a href="http://llvm.org/doxygen/Function_8h-source.html">llvm/Function.h</a>"
</pre>
<p>Which are needed because we are writing a <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1Pass.html">Pass</a></tt>, and
href="http://llvm.org/doxygen/classllvm_1_1Pass.html">Pass</a></tt>, and
we are operating on <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1Function.html">Function</a></tt>'s.</p>
href="http://llvm.org/doxygen/classllvm_1_1Function.html">Function</a></tt>'s.</p>
<p>Next we have:</p>
<pre>
@ -242,7 +242,7 @@ information.</p>
</pre><p>
<p>This declares a "<tt>Hello</tt>" class that is a subclass of <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1FunctionPass.html">FunctionPass</a></tt>.
href="http://llvm.org/doxygen/classllvm_1_1FunctionPass.html">FunctionPass</a></tt>.
The different builtin pass subclasses are described in detail <a
href="#passtype">later</a>, but for now, know that <a
href="#FunctionPass"><tt>FunctionPass</tt></a>'s operate a function at a
@ -276,8 +276,8 @@ depending on what it is to be used for. For "optimizations" we use the
<p>As a whole, the <tt>.cpp</tt> file looks like:</p>
<pre>
<b>#include</b> "<a href="http://llvm.cs.uiuc.edu/doxygen/Pass_8h-source.html">llvm/Pass.h</a>"
<b>#include</b> "<a href="http://llvm.cs.uiuc.edu/doxygen/Function_8h-source.html">llvm/Function.h</a>"
<b>#include</b> "<a href="http://llvm.org/doxygen/Pass_8h-source.html">llvm/Pass.h</a>"
<b>#include</b> "<a href="http://llvm.org/doxygen/Function_8h-source.html">llvm/Function.h</a>"
<b>using namespace llvm;</b>
@ -424,7 +424,7 @@ slow.</p>
<div class="doc_text">
<p>The most plain and boring type of pass is the "<tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1ImmutablePass.html">ImmutablePass</a></tt>"
href="http://llvm.org/doxygen/classllvm_1_1ImmutablePass.html">ImmutablePass</a></tt>"
class. This pass type is used for passes that do not have to be run, do not
change state, and never need to be updated. This is not a normal type of
transformation or analysis, but can provide information about the current
@ -447,7 +447,7 @@ invalidated, and are never "run".</p>
<div class="doc_text">
<p>The "<tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1ModulePass.html">ModulePass</a></tt>"
href="http://llvm.org/doxygen/classllvm_1_1ModulePass.html">ModulePass</a></tt>"
class is the most general of all superclasses that you can use. Deriving from
<tt>ModulePass</tt> indicates that your pass uses the entire program as a unit,
refering to function bodies in no predictable order, or adding and removing
@ -485,7 +485,7 @@ false otherwise.</p>
<div class="doc_text">
<p>The "<tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1CallGraphSCCPass.html">CallGraphSCCPass</a></tt>"
href="http://llvm.org/doxygen/classllvm_1_1CallGraphSCCPass.html">CallGraphSCCPass</a></tt>"
is used by passes that need to traverse the program bottom-up on the call graph
(callees before callers). Deriving from CallGraphSCCPass provides some
mechanics for building and traversing the CallGraph, but also allows the system
@ -593,7 +593,7 @@ program being compiled.</p>
<div class="doc_text">
<p>In contrast to <tt>ModulePass</tt> subclasses, <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1Pass.html">FunctionPass</a></tt>
href="http://llvm.org/doxygen/classllvm_1_1Pass.html">FunctionPass</a></tt>
subclasses do have a predictable, local behavior that can be expected by the
system. All <tt>FunctionPass</tt> execute on each function in the program
independent of all of the other functions in the program.
@ -638,7 +638,7 @@ scheduled to overlap with any other pass executions (thus it should be very
fast).</p>
<p>A good example of how this method should be used is the <a
href="http://llvm.cs.uiuc.edu/doxygen/LowerAllocations_8cpp-source.html">LowerAllocations</a>
href="http://llvm.org/doxygen/LowerAllocations_8cpp-source.html">LowerAllocations</a>
pass. This pass converts <tt>malloc</tt> and <tt>free</tt> instructions into
platform dependent <tt>malloc()</tt> and <tt>free()</tt> function calls. It
uses the <tt>doInitialization</tt> method to get a reference to the malloc and
@ -853,7 +853,7 @@ registering a pass that logically should be available for use in the
<tt>Register*</tt> templates that should be used if you want your pass listed by
multiple or no utilities. This template takes an extra third argument that
specifies which tools it should be listed in. See the <a
href="http://llvm.cs.uiuc.edu/doxygen/PassSupport_8h-source.html">PassSupport.h</a>
href="http://llvm.org/doxygen/PassSupport_8h-source.html">PassSupport.h</a>
file for more information.</li>
</ul>
@ -934,7 +934,7 @@ having any prerequisite passes, and invalidating <b>all</b> other passes.</p>
<p>By implementing the <tt>getAnalysisUsage</tt> method, the required and
invalidated sets may be specified for your transformation. The implementation
should fill in the <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AnalysisUsage.html">AnalysisUsage</a></tt>
href="http://llvm.org/doxygen/classllvm_1_1AnalysisUsage.html">AnalysisUsage</a></tt>
object with information about which passes are required and not invalidated. To
do this, a pass may call any of the following methods on the AnalysisUsage
object:</p>
@ -1011,9 +1011,9 @@ the fact that it hacks on the CFG.
<pre>
<i>// This is an example implementation from an analysis, which does not modify
// the program at all, yet has a prerequisite.</i>
<b>void</b> <a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1PostDominanceFrontier.html">PostDominanceFrontier</a>::getAnalysisUsage(AnalysisUsage &amp;AU) <b>const</b> {
<b>void</b> <a href="http://llvm.org/doxygen/classllvm_1_1PostDominanceFrontier.html">PostDominanceFrontier</a>::getAnalysisUsage(AnalysisUsage &amp;AU) <b>const</b> {
AU.setPreservesAll();
AU.addRequired&lt;<a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1PostDominatorTree.html">PostDominatorTree</a>&gt;();
AU.addRequired&lt;<a href="http://llvm.org/doxygen/classllvm_1_1PostDominatorTree.html">PostDominatorTree</a>&gt;();
}
</pre>
@ -1021,9 +1021,9 @@ the fact that it hacks on the CFG.
<pre>
<i>// This example modifies the program, but does not modify the CFG</i>
<b>void</b> <a href="http://llvm.cs.uiuc.edu/doxygen/structLICM.html">LICM</a>::getAnalysisUsage(AnalysisUsage &amp;AU) <b>const</b> {
<b>void</b> <a href="http://llvm.org/doxygen/structLICM.html">LICM</a>::getAnalysisUsage(AnalysisUsage &amp;AU) <b>const</b> {
AU.setPreservesCFG();
AU.addRequired&lt;<a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1LoopInfo.html">LoopInfo</a>&gt;();
AU.addRequired&lt;<a href="http://llvm.org/doxygen/classllvm_1_1LoopInfo.html">LoopInfo</a>&gt;();
}
</pre>
@ -1128,16 +1128,16 @@ implementation pool. Also, a default implementation of the interface
href="#registerag"><tt>RegisterAnalysisGroup</tt></a>.</p>
<p>As a concrete example of an Analysis Group in action, consider the <a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>
href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>
analysis group. The default implementation of the alias analysis interface (the
<tt><a
href="http://llvm.cs.uiuc.edu/doxygen/structBasicAliasAnalysis.html">basicaa</a></tt>
href="http://llvm.org/doxygen/structBasicAliasAnalysis.html">basicaa</a></tt>
pass) just does a few simple checks that don't require significant analysis to
compute (such as: two different globals can never alias each other, etc).
Passes that use the <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a></tt>
href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a></tt>
interface (for example the <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/structGCSE.html">gcse</a></tt> pass), do
href="http://llvm.org/doxygen/structGCSE.html">gcse</a></tt> pass), do
not care which implementation of alias analysis is actually provided, they just
use the designated interface.</p>
@ -1164,7 +1164,7 @@ Unlike registration of passes, there is no command line argument to be specified
for the Analysis Group Interface itself, because it is "abstract":</p>
<pre>
<b>static</b> RegisterAnalysisGroup&lt;<a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>&gt; A("<i>Alias Analysis</i>");
<b>static</b> RegisterAnalysisGroup&lt;<a href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>&gt; A("<i>Alias Analysis</i>");
</pre>
<p>Once the analysis is registered, passes can declare that they are valid
@ -1177,13 +1177,13 @@ implementations of the interface by using the following code:</p>
B("<i>somefancyaa</i>", "<i>A more complex alias analysis implementation</i>");
//<i> Declare that we implement the AliasAnalysis interface</i>
RegisterAnalysisGroup&lt;<a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>, FancyAA&gt; C;
RegisterAnalysisGroup&lt;<a href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>, FancyAA&gt; C;
}
</pre>
<p>This just shows a class <tt>FancyAA</tt> that is registered normally, then
uses the <tt>RegisterAnalysisGroup</tt> template to "join" the <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a></tt>
href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a></tt>
analysis group. Every implementation of an analysis group should join using
this template. A single pass may join multiple different analysis groups with
no problem.</p>
@ -1191,11 +1191,11 @@ no problem.</p>
<pre>
<b>namespace</b> {
//<i> Analysis Group implementations <b>must</b> be registered normally...</i>
RegisterOpt&lt;<a href="http://llvm.cs.uiuc.edu/doxygen/structBasicAliasAnalysis.html">BasicAliasAnalysis</a>&gt;
RegisterOpt&lt;<a href="http://llvm.org/doxygen/structBasicAliasAnalysis.html">BasicAliasAnalysis</a>&gt;
D("<i>basicaa</i>", "<i>Basic Alias Analysis (default AA impl)</i>");
//<i> Declare that we implement the AliasAnalysis interface</i>
RegisterAnalysisGroup&lt;<a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>, <a href="http://llvm.cs.uiuc.edu/doxygen/structBasicAliasAnalysis.html">BasicAliasAnalysis</a>, <b>true</b>&gt; E;
RegisterAnalysisGroup&lt;<a href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>, <a href="http://llvm.org/doxygen/structBasicAliasAnalysis.html">BasicAliasAnalysis</a>, <b>true</b>&gt; E;
}
</pre>
@ -1203,7 +1203,7 @@ no problem.</p>
argument to the <tt>RegisterAnalysisGroup</tt> template). There must be exactly
one default implementation available at all times for an Analysis Group to be
used. Here we declare that the <tt><a
href="http://llvm.cs.uiuc.edu/doxygen/structBasicAliasAnalysis.html">BasicAliasAnalysis</a></tt>
href="http://llvm.org/doxygen/structBasicAliasAnalysis.html">BasicAliasAnalysis</a></tt>
pass is the default implementation for the interface.</p>
</div>
@ -1216,7 +1216,7 @@ pass is the default implementation for the interface.</p>
<div class="doc_text">
<p>The <a
href="http://llvm.cs.uiuc.edu/doxygen/Statistic_8h-source.html"><tt>Statistic</tt></a>
href="http://llvm.org/doxygen/Statistic_8h-source.html"><tt>Statistic</tt></a>
class is designed to be an easy way to expose various success
metrics from passes. These statistics are printed at the end of a
run, when the -stats command line option is enabled on the command
@ -1234,9 +1234,9 @@ line. See the <a href="http://llvm.org/docs/ProgrammersManual.html#Statistic">St
<div class="doc_text">
<p>The <a
href="http://llvm.cs.uiuc.edu/doxygen/PassManager_8h-source.html"><tt>PassManager</tt></a>
href="http://llvm.org/doxygen/PassManager_8h-source.html"><tt>PassManager</tt></a>
<a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1PassManager.html">class</a>
href="http://llvm.org/doxygen/classllvm_1_1PassManager.html">class</a>
takes a list of passes, ensures their <a href="#interaction">prerequisites</a>
are set up correctly, and then schedules passes to run efficiently. All of the
LLVM tools that run passes use the <tt>PassManager</tt> for execution of these
@ -1267,7 +1267,7 @@ etc... until the entire program has been run through the passes.
the LLVM program representation for a single function at a time, instead of
traversing the entire program. It reduces the memory consumption of compiler,
because, for example, only one <a
href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1DominatorSet.html"><tt>DominatorSet</tt></a>
href="http://llvm.org/doxygen/classllvm_1_1DominatorSet.html"><tt>DominatorSet</tt></a>
needs to be calculated at a time. This also makes it possible some <a
href="#SMP">interesting enhancements</a> in the future.</p></li>
@ -1592,7 +1592,7 @@ href="#ModulePass"><tt>ModulePass</tt></a>, only the other way around.</p>
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>

View File

@ -20,7 +20,7 @@
</ul>
</td><td class="right">
<form action="http://www.google.com/search" method=get>
<input type="hidden" name="sitesearch" value="llvm.cs.uiuc.edu/docs">
<input type="hidden" name="sitesearch" value="llvm.org/docs">
<input type=text name=q size=25><br>
<input type=submit value="Search the LLVM Docs" name="submit">
</form>
@ -28,7 +28,7 @@
</div>
<div class="doc_author">
<p>Written by <a href="http://llvm.cs.uiuc.edu">The LLVM Team</a></p>
<p>Written by <a href="http://llvm.org">The LLVM Team</a></p>
</div>
<!--=======================================================================-->
@ -36,7 +36,7 @@
<!--=======================================================================-->
<ul>
<li><a href="http://llvm.cs.uiuc.edu/pubs/2004-01-30-CGO-LLVM.html">LLVM: A
<li><a href="http://llvm.org/pubs/2004-01-30-CGO-LLVM.html">LLVM: A
Compilation Framework for Lifelong Program Analysis &amp; Transformation</a>: -
Describes the LLVM instruction set and compilation strategy. This should be the
first document you read to get an overview of LLVM.</li>
@ -146,14 +146,14 @@ 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="http://llvm.cs.uiuc.edu/doxygen/">Doxygen generated
<li><a href="http://llvm.org/doxygen/">Doxygen generated
documentation</a> (<a
href="http://llvm.cs.uiuc.edu/doxygen/inherits.html">classes</a>)
href="http://llvm.org/doxygen/inherits.html">classes</a>)
(<a href="http://llvm.cs.uiuc.edu/doxygen/doxygen.tar.gz">tarball</a>)
(<a href="http://llvm.org/doxygen/doxygen.tar.gz">tarball</a>)
</li>
<li><a href="http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm">CVSWeb CVS Tree
<li><a href="http://llvm.org/cvsweb/cvsweb.cgi/llvm">CVSWeb CVS Tree
Browser</a></li>
</ul>
@ -249,7 +249,7 @@ times each day, making it a high volume list.</li>
<a href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
<a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
<a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>