[llvm-commits] CVS: llvm/lib/Target/X86/README.txt

Evan Cheng evan.cheng at apple.com
Fri Jan 27 14:11:13 PST 2006



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.






More information about the llvm-commits mailing list