Add an entry.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 13 Jul 2011 01:33:00 +0000 (01:33 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 13 Jul 2011 01:33:00 +0000 (01:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135024 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/README.txt

index 8ba9a27e95c89251cc61e1d6a260fb644fde8cc0..2f6842e8cb6094f792fd25379883ae796d39aee8 100644 (file)
@@ -681,3 +681,21 @@ is compiled and optimized to:
     str    r1, [r0]
 
 //===---------------------------------------------------------------------===//
+
+Improve codegen for select's:
+if (x != 0) x = 1
+if (x == 1) x = 1
+
+ARM codegen used to look like this:
+       mov     r1, r0
+       cmp     r1, #1
+       mov     r0, #0
+       moveq   r0, #1
+
+The naive lowering select between two different values. It should recognize the
+test is equality test so it's more a conditional move rather than a select:
+       cmp     r0, #1
+       movne   r0, #0
+
+Currently this is a ARM specific dag combine. We probably should make it into a
+target-neutral one.