[llvm-commits] CVS: llvm-www/releases/1.0/docs/ProgrammersManual.html WritingAnLLVMPass.html

Tanya Brethour tbrethou at cs.uiuc.edu
Tue Jun 22 03:10:13 PDT 2004


Changes in directory llvm-www/releases/1.0/docs:

ProgrammersManual.html updated: 1.2 -> 1.3
WritingAnLLVMPass.html updated: 1.1 -> 1.2

---
Log message:

Fixing broken links


---
Diffs of the changes:  (+28 -28)

Index: llvm-www/releases/1.0/docs/ProgrammersManual.html
diff -u llvm-www/releases/1.0/docs/ProgrammersManual.html:1.2 llvm-www/releases/1.0/docs/ProgrammersManual.html:1.3
--- llvm-www/releases/1.0/docs/ProgrammersManual.html:1.2	Mon Jun 21 23:25:28 2004
+++ llvm-www/releases/1.0/docs/ProgrammersManual.html	Tue Jun 22 03:01:35 2004
@@ -747,7 +747,7 @@
 use-def chains</h4><ul>
 
 Frequently, we might have an instance of the <a
-href="/doxygen/classValue.html">Value Class</a> and we want to
+href="/doxygen/structllvm_1_1Value.html">Value Class</a> and we want to
 determine which <tt>User</tt>s use the <tt>Value</tt>.  The list of
 all <tt>User</tt>s of a particular <tt>Value</tt> is called a
 <i>def-use</i> chain.  For example, let's say we have a
@@ -964,7 +964,7 @@
 You can use <tt>Value::replaceAllUsesWith</tt> and
 <tt>User::replaceUsesOfWith</tt> to change more than one use at a
 time.  See the doxygen documentation for the <a
-href="/doxygen/classValue.html">Value Class</a> and <a
+href="/doxygen/structllvm_1_1Value.html">Value Class</a> and <a
 href="/doxygen/classUser.html">User Class</a>, respectively, for more
 information.
 
@@ -994,7 +994,7 @@
 </b></font></td></tr></table><ul>
 
 <tt>#include "<a href="/doxygen/Value_8h-source.html">llvm/Value.h</a>"</tt></b><br>
-doxygen info: <a href="/doxygen/classValue.html">Value Class</a><p>
+doxygen info: <a href="/doxygen/structllvm_1_1Value.html">Value Class</a><p>
 
 
 The <tt>Value</tt> class is the most important class in LLVM Source base.  It
@@ -1501,7 +1501,7 @@
 
 <tt>#include "<a
 href="/doxygen/GlobalVariable_8h-source.html">llvm/GlobalVariable.h</a>"</tt></b><br>
-doxygen info: <a href="/doxygen/classGlobalVariable.html">GlobalVariable Class</a><br>
+doxygen info: <a href="/doxygen/classllvm_1_1GlobalVariable.html">GlobalVariable Class</a><br>
 Superclasses: <a href="#GlobalValue"><tt>GlobalValue</tt></a>, <a
 href="#User"><tt>User</tt></a>, <a href="#Value"><tt>Value</tt></a><p>
 


Index: llvm-www/releases/1.0/docs/WritingAnLLVMPass.html
diff -u llvm-www/releases/1.0/docs/WritingAnLLVMPass.html:1.1 llvm-www/releases/1.0/docs/WritingAnLLVMPass.html:1.2
--- llvm-www/releases/1.0/docs/WritingAnLLVMPass.html:1.1	Fri Oct 24 15:51:39 2003
+++ llvm-www/releases/1.0/docs/WritingAnLLVMPass.html	Tue Jun 22 03:01:35 2004
@@ -96,13 +96,13 @@
 all, a structuring technique for compiler code.<p>
 
 All LLVM passes are subclasses of the <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/classPass.html">Pass</a></tt> class, which
+href="http://llvm.cs.uiuc.edu/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 may be able to inherit
 from the <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/structFunctionPass.html">FunctionPass</a></tt>
+href="http://llvm.cs.uiuc.edu/doxygen/structllvm_1_1FunctionPass.html">FunctionPass</a></tt>
 or <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/structBasicBlockPass.html">BasicBlockPass</a></tt>,
+href="http://llvm.cs.uiuc.edu/doxygen/structllvm_1_1BasicBlockPass.html">BasicBlockPass</a></tt>,
 which gives the system more information about what your pass does, and how it
 can be combined with other passes.  One of the main features of the LLVM Pass
 Framework is that it schedules passes to run in an efficient way based on the
@@ -181,9 +181,9 @@
 </pre>
 
 Which are needed because we are writing a <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/classPass.html">Pass</a></tt>, and we are
+href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1Pass.html">Pass</a></tt>, and we are
 operating on <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/classFunction.html">Function</a></tt>'s.<p>
+href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1Function.html">Function</a></tt>'s.<p>
 
 Next we have:<p>
 
@@ -204,7 +204,7 @@
 </pre><p>
 
 This declares a "<tt>Hello</tt>" class that is a subclass of <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/structFunctionPass.html">FunctionPass</a></tt>.
+href="http://llvm.cs.uiuc.edu/doxygen/structllvm_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 time.<p>
@@ -380,7 +380,7 @@
 </b></font></td></tr></table><ul>
 
 The most plain and boring type of pass is the "<tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/structImmutablePass.html">ImmutablePass</a></tt>"
+href="http://llvm.cs.uiuc.edu/doxygen/structllvm_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
@@ -401,7 +401,7 @@
 <a name="Pass">The <tt>Pass</tt> class
 </b></font></td></tr></table><ul>
 
-The "<tt><a href="http://llvm.cs.uiuc.edu/doxygen/classPass.html">Pass</a></tt>"
+The "<tt><a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1Pass.html">Pass</a></tt>"
 class is the most general of all superclasses that you can use.  Deriving from
 <tt>Pass</tt> indicates that your pass uses the entire program as a unit,
 refering to function bodies in no predictable order, or adding and removing
@@ -433,7 +433,7 @@
 </b></font></td></tr></table><ul>
 
 In contrast to direct <tt>Pass</tt> subclasses, direct <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/classPass.html">FunctionPass</a></tt>
+href="http://llvm.cs.uiuc.edu/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.
@@ -730,9 +730,9 @@
 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/classAnalysisUsage.html">AnalysisUsage</a></tt>
+href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AnalysisUsage.html">AnalysisUsage</a></tt>
 object with information about which passes are required and not invalidated.  To do this, the following set methods are provided by the <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/classAnalysisUsage.html">AnalysisUsage</a></tt> class:<p>
+href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AnalysisUsage.html">AnalysisUsage</a></tt> class:<p>
 
 <pre>
   <i>// addRequires - Add the specified pass to the required set for your pass.</i>
@@ -762,9 +762,9 @@
 <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/structPostDominanceFrontier.html">PostDominanceFrontier</a>::getAnalysisUsage(AnalysisUsage &AU) <b>const</b> {
+  <b>void</b> <a href="http://llvm.cs.uiuc.edu/doxygen/structllvm_1_1PostDominanceFrontier.html">PostDominanceFrontier</a>::getAnalysisUsage(AnalysisUsage &AU) <b>const</b> {
     AU.setPreservesAll();
-    AU.addRequired<<a href="http://llvm.cs.uiuc.edu/doxygen/structPostDominatorTree.html">PostDominatorTree</a>>();
+    AU.addRequired<<a href="http://llvm.cs.uiuc.edu/doxygen/structllvm_1_1PostDominatorTree.html">PostDominatorTree</a>>();
   }
 </pre><p>
 
@@ -774,7 +774,7 @@
   <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 &AU) <b>const</b> {
     AU.setPreservesCFG();
-    AU.addRequired<<a href="http://llvm.cs.uiuc.edu/doxygen/classLoopInfo.html">LoopInfo</a>>();
+    AU.addRequired<<a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1LoopInfo.html">LoopInfo</a>>();
   }
 </pre><p>
 
@@ -848,16 +848,16 @@
 href="#registerag"><tt>RegisterAnalysisGroup</tt></a>.<p>
 
 As a concrete example of an Analysis Group in action, consider the <a
-href="http://llvm.cs.uiuc.edu/doxygen/structAliasAnalysis.html">AliasAnalysis</a>
+href="http://llvm.cs.uiuc.edu/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>
 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/structAliasAnalysis.html">AliasAnalysis</a></tt>
+href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a></tt>
 interface (for example the <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/classGCSE.html">gcse</a></tt> pass), do not care which implementation
+href="http://llvm.cs.uiuc.edu/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>
 
@@ -879,7 +879,7 @@
 for the Analysis Group Interface itself, because it is "abstract":<p>
 
 <pre>
-  <b>static</b> RegisterAnalysisGroup<<a href="http://llvm.cs.uiuc.edu/doxygen/structAliasAnalysis.html">AliasAnalysis</a>> A("<i>Alias Analysis</i>");
+  <b>static</b> RegisterAnalysisGroup<<a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>> A("<i>Alias Analysis</i>");
 </pre><p>
 
 Once the analysis is registered, passes can declare that they are valid
@@ -892,13 +892,13 @@
   B("<i>somefancyaa</i>", "<i>A more complex alias analysis implementation</i>");
 
   //<i> Declare that we implement the AliasAnalysis interface</i>
-  RegisterAnalysisGroup<<a href="http://llvm.cs.uiuc.edu/doxygen/structAliasAnalysis.html">AliasAnalysis</a>, FancyAA> C;
+  RegisterAnalysisGroup<<a href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis</a>, FancyAA> 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/structAliasAnalysis.html">AliasAnalysis</a></tt>
+href="http://llvm.cs.uiuc.edu/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>
@@ -910,7 +910,7 @@
   D("<i>basicaa</i>", "<i>Basic Alias Analysis (default AA impl)</i>");
 
   //<i> Declare that we implement the AliasAnalysis interface</i>
-  RegisterAnalysisGroup<<a href="http://llvm.cs.uiuc.edu/doxygen/structAliasAnalysis.html">AliasAnalysis</a>, <a href="http://llvm.cs.uiuc.edu/doxygen/structBasicAliasAnalysis.html">BasicAliasAnalysis</a>, <b>true</b>> E;
+  RegisterAnalysisGroup<<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>> E;
 }
 </pre><p>
 
@@ -931,7 +931,7 @@
 
 The <a
 href="http://llvm.cs.uiuc.edu/doxygen/PassManager_8h-source.html"><tt>PassManager</tt></a>
-<a href="http://llvm.cs.uiuc.edu/doxygen/classPassManager.html">class</a> takes
+<a href="http://llvm.cs.uiuc.edu/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
@@ -962,7 +962,7 @@
 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/structDominatorSet.html"><tt>DominatorSet</tt></a>
+href="http://llvm.cs.uiuc.edu/doxygen/structllvm_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>
 
@@ -1233,7 +1233,7 @@
 </ul><h4><a name="ModuleSource"><hr size=0>A new <tt>ModuleSource</tt> interface</h4><ul>
 
 Currently, the <tt>PassManager</tt>'s <tt>run</tt> method takes a <tt><a
-href="http://llvm.cs.uiuc.edu/doxygen/classModule.html">Module</a></tt> as
+href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1Module.html">Module</a></tt> as
 input, and runs all of the passes on this module.  The problem with this
 approach is that none of the <tt>PassManager</tt> features can be used for
 timing and debugging the actual <b>loading</b> of the module from disk or





More information about the llvm-commits mailing list