Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.23 -> 1.24
---
Log message:

Added notes about a x86 isel deficiency.


---
Diffs of the changes:  (+22 -0)

 README.txt |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+)


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.23 llvm/lib/Target/X86/README.txt:1.24
--- llvm/lib/Target/X86/README.txt:1.23 Mon Jan 16 11:52:31 2006
+++ llvm/lib/Target/X86/README.txt      Fri Jan 27 16:11:01 2006
@@ -166,3 +166,25 @@
 
 Combine: a = sin(x), b = cos(x) into a,b = sincos(x).
 
+//===---------------------------------------------------------------------===//
+
+Solve this DAG isel folding deficiency:
+
+int X, Y;
+
+void fn1(void)
+{
+  X = X | (Y << 3);
+}
+
+compiles to
+
+fn1:
+       movl Y, %eax
+       shll $3, %eax
+       orl X, %eax
+       movl %eax, X
+       ret
+
+The problem is the store's chain operand is not the load X but rather
+a TokenFactor of the load X and load Y. This prevents the folding.



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to