diff --git a/docs/Passes.html b/docs/Passes.html
index 3edb1219d1d..66ef44bc863 100644
--- a/docs/Passes.html
+++ b/docs/Passes.html
@@ -7,6 +7,34 @@
+
+
@@ -26,11 +54,11 @@
This document serves as a high level summary of the optimization features
that LLVM provides. Optimizations are implemented as Passes that traverse some
portion of a program to either collect information or transform the program.
- THe table below divides the passes that LLVM provides into three categories.
+ The table below divides the passes that LLVM provides into three categories.
Analysis passes compute information that other passes can use or for debugging
or program visualization purposes. Transform passes can use (or invalidate)
the analysis passes. Transform passes all mutate the program in some way.
- Utility passes provides ome utility but don't otherwise fit categorization.
+ Utility passes provides some utility but don't otherwise fit categorization.
For example passes to extract functions to bitcode or write a module to
bitcode are neither analysis nor transform passes.
The table below provides a quick summary of each pass and links to the more
@@ -48,26 +76,23 @@
-callgraph | Print a call graph |
-callscc | Print SCCs of the Call Graph |
-cfgscc | Print SCCs of each function CFG |
+-codegenprepare | Optimize for code generation |
-count-aa | Count Alias Analysis Query Responses |
-debug-aa | AA use debugger |
-domfrontier | Dominance Frontier Construction |
--domset | Dominator Set Construction |
-domtree | Dominator Tree Construction |
--etforest | ET Forest Construction |
-externalfnconstants | Print external fn callsites passed constants |
-globalsmodref-aa | Simple mod/ref analysis for globals |
--idom | Immediate Dominators Construction |
+-gvn | Global Value Numbering |
-instcount | Counts the various types of Instructions |
-intervals | Interval Partition Construction |
-load-vn | Load Value Numbering |
-loops | Natural Loop Construction |
+-memdep | Memory Dependence Analysis |
-no-aa | No Alias Analysis (always returns 'may' alias) |
-no-profile | No Profile Information |
-postdomfrontier | Post-Dominance Frontier Construction |
--postdomset | Post-Dominator Set Construction |
-postdomtree | Post-Dominator Tree Construction |
--postetforest | Post-ET-Forest Construction |
--postidom | Immediate Post-Dominators Construction |
-print | Print function to stderr |
-print-alias-sets | Alias Set Printer |
-print-callgraph | Print Call Graph to 'dot' file |
@@ -85,7 +110,7 @@
-adce | Aggressive Dead Code Elimination |
-argpromotion | Promote 'by reference' arguments to scalars |
-block-placement | Profile Guided Basic Block Placement |
--break-crit-edges | Break Critical Edges in CFG |
+-break-crit-edges | Break critical edges in CFG |
-cee | Correlated Expression Elimination |
-condprop | Conditional Propagation |
-constmerge | Merge Duplicate Global Constants |
@@ -98,6 +123,7 @@
-gcse | Global Common Subexpression Elimination |
-globaldce | Dead Global Elimination |
-globalopt | Global Variable Optimizer |
+-gvnpre | Global Value Numbering/Partial Redundancy Elimination |
-indmemrem | Indirect Malloc and Free Removal |
-indvars | Canonicalize Induction Variables |
-inline | Function Integration/Inlining |
@@ -114,24 +140,26 @@
-licm | Loop Invariant Code Motion |
-loop-extract | Extract loops into new functions |
-loop-extract-single | Extract at most one loop into a new function |
+-loop-index-split | Index Split Loops |
-loop-reduce | Loop Strength Reduction |
--loop-unroll | Unroll Loops |
--loop-unswitch | Unswitch Loops |
--loopsimplify | Canonicalize Natural Loops |
--lower-packed | Lower Packed Operations |
+-loop-rotate | Rotate Loops |
+-loop-unroll | Unroll loops |
+-loop-unswitch | Unswitch loops |
+-loopsimplify | Canonicalize natural loops |
+-lower-packed | lowers packed operations to operations on smaller packed datatypes |
-lowerallocs | Lower allocations from instructions to calls |
-lowergc | Lower GC intrinsics, for GCless code generators |
--lowerinvoke | Lower Invoke and Unwind |
--lowerselect | Lower Selects To Branches |
+-lowerinvoke | Lower invoke and unwind, for unwindless code generators |
+-lowerselect | Lower select instructions to branches |
-lowersetjmp | Lower Set Jump |
-lowerswitch | Lower SwitchInst's to branches |
-mem2reg | Promote Memory to Register |
--mergereturn | Unify Function Exit Nodes |
+-mergereturn | Unify function exit nodes |
-predsimplify | Predicate Simplifier |
-prune-eh | Remove unused exception handling info |
-raiseallocs | Raise allocations from calls to instructions |
--reassociate | Reassociate Expressions |
--reg2mem | Demote Values to Memory |
+-reassociate | Reassociate expressions |
+-reg2mem | Demote all values to stack slots |
-scalarrepl | Scalar Replacement of Aggregates |
-sccp | Sparse Conditional Constant Propagation |
-simplify-libcalls | Simplify well-known library calls |
@@ -139,12 +167,16 @@
-strip | Strip all symbols from a module |
-tailcallelim | Tail Call Elimination |
-tailduplicate | Tail Duplication |
+
+
UTILITY PASSES |
Option | Name | Directory |
--deadarghaX0r | Dead Argument Hacking (BUGPOINT ONLY) |
--extract-blocks | Extract Basic Blocks From Module (BUGPOINT ONLY) |
+-deadarghaX0r | Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE) |
+-extract-blocks | Extract Basic Blocks From Module (for bugpoint use) |
-emitbitcode | Bitcode Writer |
-verify | Module Verifier |
+-view-cfg | View CFG of function |
+-view-cfg-only | View CFG of function (with no function bodies) |
@@ -172,7 +204,7 @@
Yet to be written.
@@ -180,7 +212,7 @@
Yet to be written.
@@ -188,7 +220,7 @@
Yet to be written.
@@ -196,7 +228,7 @@
Yet to be written.
@@ -212,7 +244,15 @@
+
+
+
+
Yet to be written.
@@ -228,7 +268,7 @@
Yet to be written.
@@ -242,14 +282,6 @@
Yet to be written.
-
-
-
-
-
-
-
-
-
-
-
-
Print external fn callsites passed constants
@@ -292,7 +308,7 @@
Yet to be written.
@@ -330,6 +346,14 @@
Yet to be written.
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
Print function to stderr
@@ -515,7 +515,7 @@
Yet to be written.
@@ -564,7 +564,7 @@
This file implements constant propagation and merging. It looks for
@@ -642,6 +642,14 @@
Yet to be written.
+
+
+
+
+
+
+
+
Loop Strength Reduction
@@ -780,7 +796,7 @@
Yet to be written.
@@ -788,7 +804,7 @@
Yet to be written.
@@ -796,7 +812,7 @@
Yet to be written.
@@ -804,7 +820,15 @@
+
+
+
+
Yet to be written.
@@ -828,7 +852,7 @@
Yet to be written.
@@ -836,7 +860,7 @@
Yet to be written.
@@ -868,7 +892,7 @@
Yet to be written.
@@ -900,7 +924,7 @@
Yet to be written.
@@ -908,7 +932,7 @@
Yet to be written.
@@ -978,7 +1002,7 @@
Yet to be written.
@@ -986,7 +1010,7 @@
Yet to be written.
@@ -1008,6 +1032,22 @@
Yet to be written.
+
+
+
+
+
+
+
+