[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