add a missed loop deletion case.
authorChris Lattner <sabre@nondot.org>
Mon, 21 Feb 2011 02:13:39 +0000 (02:13 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 21 Feb 2011 02:13:39 +0000 (02:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126103 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index bda764deffe09bacae4f8ab3250fe7bdde485963..f85914b61d9d81323f68c4f3bfbe653ec66cf987 100644 (file)
@@ -254,6 +254,20 @@ unsigned long reverse(unsigned v) {
 
 //===---------------------------------------------------------------------===//
 
+[LOOP DELETION]
+
+We don't delete this output free loop, because trip count analysis doesn't
+realize that it is finite (if it were infinite, it would be undefined).  Not
+having this blocks Loop Idiom from matching strlen and friends.  
+
+void foo(char *C) {
+  int x = 0;
+  while (*C)
+    ++x,++C;
+}
+
+//===---------------------------------------------------------------------===//
+
 [LOOP RECOGNITION]
 
 These idioms should be recognized as popcount (see PR1488):