From ddaa61d8b5f9af9f8f0ea5348c413bb9a9321bbc Mon Sep 17 00:00:00 2001 From: Gordon Henriksen Date: Thu, 25 Oct 2007 08:58:56 +0000 Subject: Passes.html now 'passes' validation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43335 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/Passes.html | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/docs/Passes.html b/docs/Passes.html index 66ef44b..efa69fe 100644 --- a/docs/Passes.html +++ b/docs/Passes.html @@ -4,6 +4,7 @@ LLVM's Analysis and Transform Passes + @@ -20,7 +21,7 @@ while () { m:^-.*.*$: or next; $order{$1} = sprintf("%03d", 1 + int %order); } -open HELP, "../Release/bin/opt --help|" or die "open: opt --help: $!\n"; +open HELP, "../Release/bin/opt -help|" or die "open: opt -help: $!\n"; while () { m:^ -([^ ]+) +- (.*)$: or next; my $o = $order{$1}; @@ -66,8 +67,8 @@ EOT
- - + + @@ -105,8 +106,8 @@ EOT - - + + @@ -169,8 +170,8 @@ EOT - - + + @@ -529,15 +530,16 @@ EOT

Correlated Expression Elimination propagates information from conditional branches to blocks dominated by destinations of the branch. It propagates information from the condition check itself into the body of the branch, - allowing transformations like these for example: -

-    if (i == 7)
-      ... 4*i;  // constant propagation
+  allowing transformations like these for example:

+ +
+if (i == 7)
+  ... 4*i;  // constant propagation
 
-    M = i+1; N = j+1;
-    if (i == j)
-      X = M-N;  // = M-M == 0;
-   

+M = i+1; N = j+1; +if (i == j) + X = M-N; // = M-M == 0; +

This is called Correlated Expression Elimination because we eliminate or simplify expressions that are correlated with the direction of a branch. In @@ -569,10 +571,10 @@ EOT

This file implements constant propagation and merging. It looks for instructions involving only constant operands and replaces them with a - constant value instead of an instruction. For example: -

add i32 1, 2

- becomes -
i32 3

+ constant value instead of an instruction. For example:

+
add i32 1, 2
+

becomes

+
i32 3

NOTE: this pass has a habit of making definitions be dead. It is a good idea to to run a DIE (Dead Instruction Elimination) pass sometime after running this pass.

-- cgit v1.1
ANALYSIS PASSES
OptionNameDirectory
ANALYSIS PASSES
OptionName
-aa-evalExhaustive Alias Analysis Precision Evaluator
-anders-aaAndersen's Interprocedural Alias Analysis
-basicaaBasic Alias Analysis (default AA impl)
-targetdataTarget Data Layout
TRANSFORM PASSES
OptionNameDirectory
TRANSFORM PASSES
OptionName
-adceAggressive Dead Code Elimination
-argpromotionPromote 'by reference' arguments to scalars
-block-placementProfile Guided Basic Block Placement
-tailduplicateTail Duplication
UTILITY PASSES
OptionNameDirectory
UTILITY PASSES
OptionName
-deadarghaX0rDead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)
-extract-blocksExtract Basic Blocks From Module (for bugpoint use)
-emitbitcodeBitcode Writer