diff --git a/llvm/docs/Passes.html b/llvm/docs/Passes.html index 63b2b3661a73..2be32efd5f26 100644 --- a/llvm/docs/Passes.html +++ b/llvm/docs/Passes.html @@ -752,28 +752,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 @@ -1355,6 +1334,47 @@ if (X < 3) {

A simple loop rotation transformation.

+ +
+ -loop-simplify: Canonicalize natural loops +
+
+

+ 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. +

+
+
-loop-unroll: Unroll loops @@ -1397,47 +1417,6 @@ if (X < 3) {

- -
- -loop-simplify: Canonicalize natural loops -
-
-

- 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. -

-
-
-loweratomic: Lower atomic intrinsics to non-atomic form @@ -1705,16 +1684,6 @@ if (X < 3) {

- -
- -sink: Code Sinking -
-
-

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

-
-
-simplify-libcalls: Simplify well-known library calls @@ -1747,6 +1716,39 @@ if (X < 3) {
+ +
+ -sink: Code sinking +
+
+

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

+
+ + +
+ -sretpromotion: Promote sret arguments to multiple ret values +
+
+

+ 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: +

+ + +
+
-strip: Strip all symbols from a module @@ -1769,6 +1771,28 @@ if (X < 3) {

+ +
+ -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. +

+
+
-strip-dead-prototypes: Strip Unused Function Prototypes @@ -1818,29 +1842,6 @@ if (X < 3) {

- -
- -sretpromotion: Promote sret arguments -
-
-

- 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: -

- - -
-
-tailcallelim: Tail Call Elimination @@ -2026,9 +2027,7 @@ if (X < 3) {
- -view-dom-only: View dominance tree of function (with no function - bodies) - + -view-dom-only: View dominance tree of function (with no function bodies)

@@ -2049,9 +2048,7 @@ if (X < 3) {