OSDN Git Service

another random note
authorChris Lattner <sabre@nondot.org>
Sun, 2 Mar 2008 19:29:42 +0000 (19:29 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 2 Mar 2008 19:29:42 +0000 (19:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47831 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index 80b0037..d477c82 100644 (file)
@@ -705,3 +705,26 @@ int f() {
 }
 
 //===---------------------------------------------------------------------===//
+
+The loop unroller should partially unroll loops (instead of peeling them)
+when code growth isn't too bad and when an unroll count allows simplification
+of some code within the loop.  One trivial example is:
+
+#include <stdio.h>
+int main() {
+    int nRet = 17;
+    int nLoop;
+    for ( nLoop = 0; nLoop < 1000; nLoop++ ) {
+        if ( nLoop & 1 )
+            nRet += 2;
+        else
+            nRet -= 1;
+    }
+    return nRet;
+}
+
+Unrolling by 2 would eliminate the '&1' in both copies, leading to a net
+reduction in code size.  The resultant code would then also be suitable for
+exit value computation.
+
+//===---------------------------------------------------------------------===//