Describe loop index split.
authorDevang Patel <dpatel@apple.com>
Thu, 5 Jun 2008 21:44:00 +0000 (21:44 +0000)
committerDevang Patel <dpatel@apple.com>
Thu, 5 Jun 2008 21:44:00 +0000 (21:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52021 91177308-0d34-0410-b5e6-96231b3b80d8

docs/ReleaseNotes.html

index a752e53bca10b021748be5a4aa060abae400aafc..3ee762a01ab5d6a587a485e3c181b02b22246081 100644 (file)
@@ -219,7 +219,21 @@ LLVM 2.3 optimizers support a few major enhancements:</p>
 
 <ul>
 
-<li>Loop index set splitting on by default: describe me.</li>
+<li>Loop index set splitting on by default.<p>
+This transformation hoists conditions from loop bodies and reduces loop's
+iteration space to improve performance. For example, <p>
+<pre>
+for (i = LB; i < UB; ++i)
+  if (i <= NV)
+    LOOP_BODY
+</pre>
+is transformed into
+<pre>
+NUB = min(NV+1, UB)
+for (i = LB; i < NUB; ++i)
+  LOOP_BODY
+</pre>
+</li>
 <li>LLVM includes a new <tt>memcpy</tt> optimization pass which optimizes out dead
 <tt>memcpy</tt> calls, unneeded copies of aggregates, and handles the return slot
 optimization.  The LLVM optimizer now notices long sequences of consequtive