Increase efficiency of sign_extend_inreg by using subregisters for truncation. As...
[oota-llvm.git] / lib / Target / X86 / README.txt
index 4648630c974dfc068e046d3103bcf30a83af2cc2..073e2dacef183b26bab7ac32332d4a19f2702471 100644 (file)
@@ -402,9 +402,7 @@ L4:
 There are 3 issues:
 
 1. Lack of post regalloc LICM.
-2. Poor sub-regclass support. That leads to inability to promote the 16-bit
-   arithmetic op to 32-bit and making use of leal.
-3. LSR unable to reused IV for a different type (i16 vs. i32) even though
+2. LSR unable to reused IV for a different type (i16 vs. i32) even though
    the cast would be free.
 
 //===---------------------------------------------------------------------===//
@@ -475,21 +473,6 @@ require a copy to be inserted (in X86InstrInfo::convertToThreeAddress).
 
 //===---------------------------------------------------------------------===//
 
-Bad codegen:
-
-char foo(int x) { return x; }
-
-_foo:
-       movl 4(%esp), %eax
-       shll $24, %eax
-       sarl $24, %eax
-       ret
-
-SIGN_EXTEND_INREG can be implemented as (sext (trunc)) to take advantage of 
-sub-registers.
-
-//===---------------------------------------------------------------------===//
-
 Consider this:
 
 typedef struct pair { float A, B; } pair;