[llvm-commits] CVS: llvm/lib/Target/X86/README.txt
Chris Lattner
lattner at cs.uiuc.edu
Thu Feb 2 11:16:45 PST 2006
Changes in directory llvm/lib/Target/X86:
README.txt updated: 1.43 -> 1.44
---
Log message:
add a note, I have no idea how important this is.
---
Diffs of the changes: (+24 -0)
README.txt | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+)
Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.43 llvm/lib/Target/X86/README.txt:1.44
--- llvm/lib/Target/X86/README.txt:1.43 Thu Feb 2 00:36:48 2006
+++ llvm/lib/Target/X86/README.txt Thu Feb 2 13:16:34 2006
@@ -350,3 +350,27 @@
None of the FPStack instructions are handled in
X86RegisterInfo::foldMemoryOperand, which prevents the spiller from
folding spill code into the instructions.
+
+//===---------------------------------------------------------------------===//
+
+In many cases, LLVM generates code like this:
+
+_test:
+ movl 8(%esp), %eax
+ cmpl %eax, 4(%esp)
+ setl %al
+ movzbl %al, %eax
+ ret
+
+on some processors (which ones?), it is more efficient to do this:
+
+_test:
+ movl 8(%esp), %ebx
+ xor %eax, %eax
+ cmpl %ebx, 4(%esp)
+ setl %al
+ ret
+
+Doing this correctly is tricky though, as the xor clobbers the flags.
+
+
More information about the llvm-commits
mailing list