add a note
authorChris Lattner <sabre@nondot.org>
Sat, 4 Mar 2006 01:19:34 +0000 (01:19 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 4 Mar 2006 01:19:34 +0000 (01:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26513 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index 1ab1f16c71a225a18f39fdd00e950cc16734e580..2ce2575d1ca267a6876e20c197129f4608945531 100644 (file)
@@ -86,3 +86,18 @@ int f(int a, int b){ return a * a + 2 * a * b + b * b; }
 into:
 int f(int a, int b) { return a * (a + 2 * b) + b * b; }
 to eliminate a multiply.
+
+//===---------------------------------------------------------------------===//
+
+On targets with expensive 64-bit multiply, we could LSR this:
+
+for (i = ...; ++i) {
+   x = 1ULL << i;
+
+into:
+ long long tmp = 1;
+ for (i = ...; ++i, tmp+=tmp)
+   x = tmp;
+
+This would be a win on ppc32, but not x86 or ppc64.
+