From 415247dac4cdbec704af6caa69aff2ac63f21377 Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Sat, 19 Mar 2011 05:02:14 +0000 Subject: [PATCH] Update Passes.html, part 3: alphabetize descriptions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127948 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/Passes.html | 201 +++++++++++++++++++++++++++---------------------------- 1 file changed, 99 insertions(+), 102 deletions(-) diff --git a/docs/Passes.html b/docs/Passes.html index 63b2b3661a7..2be32efd5f2 100644 --- a/docs/Passes.html +++ b/docs/Passes.html @@ -754,28 +754,6 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- -strip-dead-debug-info: Strip debug info for unused symbols -
-
-

- performs code stripping. this transformation can delete: -

- -
    -
  1. names for virtual registers
  2. -
  3. symbols for internal globals and functions
  4. -
  5. debug information
  6. -
- -

- note that this transformation makes code much less readable, so it should - only be used in situations where the strip utility would be used, - such as reducing code size or making it harder to reverse engineer code. -

-
- - -
-targetdata: Target Data Layout
@@ -1295,6 +1273,7 @@ if (X < 3) { variable.
+
-loop-deletion: Delete dead loops @@ -1357,6 +1336,47 @@ if (X < 3) { +
+

+ This pass performs several transformations to transform natural loops into a + simpler form, which makes subsequent analyses and transformations simpler and + more effective. +

+ +

+ Loop pre-header insertion guarantees that there is a single, non-critical + entry edge from outside of the loop to the loop header. This simplifies a + number of analyses and transformations, such as LICM. +

+ +

+ Loop exit-block insertion guarantees that all exit blocks from the loop + (blocks which are outside of the loop that have predecessors inside of the + loop) only have predecessors from inside of the loop (and are thus dominated + by the loop header). This simplifies transformations such as store-sinking + that are built into LICM. +

+ +

+ This pass also guarantees that loops will have exactly one backedge. +

+ +

+ Note that the simplifycfg pass will clean up blocks which are split out but + end up being unnecessary, so usage of this pass should not pessimize + generated code. +

+ +

+ This pass obviously modifies the CFG, but updates loop information and + dominator information. +

+
+ + +
@@ -1399,47 +1419,6 @@ if (X < 3) { -
-

- This pass performs several transformations to transform natural loops into a - simpler form, which makes subsequent analyses and transformations simpler and - more effective. -

- -

- Loop pre-header insertion guarantees that there is a single, non-critical - entry edge from outside of the loop to the loop header. This simplifies a - number of analyses and transformations, such as LICM. -

- -

- Loop exit-block insertion guarantees that all exit blocks from the loop - (blocks which are outside of the loop that have predecessors inside of the - loop) only have predecessors from inside of the loop (and are thus dominated - by the loop header). This simplifies transformations such as store-sinking - that are built into LICM. -

- -

- This pass also guarantees that loops will have exactly one backedge. -

- -

- Note that the simplifycfg pass will clean up blocks which are split out but - end up being unnecessary, so usage of this pass should not pessimize - generated code. -

- -

- This pass obviously modifies the CFG, but updates loop information and - dominator information. -

-
- - -
@@ -1707,16 +1686,6 @@ if (X < 3) { -
-

This pass moves instructions into successor blocks, when possible, so that - they aren't executed on paths where their results aren't needed. -

-
- - -
@@ -1749,6 +1718,39 @@ if (X < 3) { +
+

This pass moves instructions into successor blocks, when possible, so that + they aren't executed on paths where their results aren't needed. +

+
+ + + +
+

+ This pass finds functions that return a struct (using a pointer to the struct + as the first argument of the function, marked with the 'sret' attribute) and + replaces them with a new function that simply returns each of the elements of + that struct (using multiple return values). +

+ +

+ This pass works under a number of conditions: +

+ +
    +
  • The returned struct must not contain other structs
  • +
  • The returned struct must only be used to load values from
  • +
  • The placeholder struct passed in is the result of an alloca
  • +
+
+ + +
@@ -1771,6 +1773,28 @@ if (X < 3) { +
+

+ performs code stripping. this transformation can delete: +

+ +
    +
  1. names for virtual registers
  2. +
  3. symbols for internal globals and functions
  4. +
  5. debug information
  6. +
+ +

+ note that this transformation makes code much less readable, so it should + only be used in situations where the strip utility would be used, + such as reducing code size or making it harder to reverse engineer code. +

+
+ + +
@@ -1820,29 +1844,6 @@ if (X < 3) { -
-

- This pass finds functions that return a struct (using a pointer to the struct - as the first argument of the function, marked with the 'sret' attribute) and - replaces them with a new function that simply returns each of the elements of - that struct (using multiple return values). -

- -

- This pass works under a number of conditions: -

- -
    -
  • The returned struct must not contain other structs
  • -
  • The returned struct must only be used to load values from
  • -
  • The placeholder struct passed in is the result of an alloca
  • -
-
- - -