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. + + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits