Add A2 to the list of PPC CPUs recognized by Linux host CPU-type detection.
[oota-llvm.git] / lib / Target / PowerPC / README.txt
index 3465779e344b4bee65b821254aea58f0af329f46..b6763aa738024e4474618274bcb1687c7eb3b947 100644 (file)
@@ -2,7 +2,6 @@
 
 TODO:
 * gpr0 allocation
-* implement do-loop -> bdnz transform
 * lmw/stmw pass a la arm load store optimizer for prolog/epilog
 
 ===-------------------------------------------------------------------------===
@@ -37,6 +36,31 @@ _f3:
        ori r3, r2, 65535
        blr 
 
+===-------------------------------------------------------------------------===
+
+This code:
+
+unsigned add32carry(unsigned sum, unsigned x) {
+ unsigned z = sum + x;
+ if (sum + x < x)
+     z++;
+ return z;
+}
+
+Should compile to something like:
+
+       addc r3,r3,r4
+       addze r3,r3
+
+instead we get:
+
+       add r3, r4, r3
+       cmplw cr7, r3, r4
+       mfcr r4 ; 1
+       rlwinm r4, r4, 29, 31, 31
+       add r3, r3, r4
+
+Ick.
 
 ===-------------------------------------------------------------------------===
 
@@ -260,8 +284,8 @@ including having this work sanely.
 Fix Darwin FP-In-Integer Registers ABI
 
 Darwin passes doubles in structures in integer registers, which is very very 
-bad.  Add something like a BIT_CONVERT to LLVM, then do an i-p transformation 
-that percolates these things out of functions.
+bad.  Add something like a BITCAST to LLVM, then do an i-p transformation that
+percolates these things out of functions.
 
 Check out how horrible this is:
 http://gcc.gnu.org/ml/gcc/2005-10/msg01036.html