Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.90 -> 1.91
---
Log message:

Another entry

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

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


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.90 llvm/lib/Target/X86/README.txt:1.91
--- llvm/lib/Target/X86/README.txt:1.90 Mon Apr 17 19:21:01 2006
+++ llvm/lib/Target/X86/README.txt      Mon Apr 17 20:22:57 2006
@@ -961,3 +961,38 @@
 to three-address transformation.
 
 It also exposes some other problems. See MOV32ri -3 and the spills.
+
+//===---------------------------------------------------------------------===//
+
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25500
+
+LLVM is producing bad code.
+
+LBB_main_4:    # cond_true44
+       addps %xmm1, %xmm2
+       subps %xmm3, %xmm2
+       movaps (%ecx), %xmm4
+       movaps %xmm2, %xmm1
+       addps %xmm4, %xmm1
+       addl $16, %ecx
+       incl %edx
+       cmpl $262144, %edx
+       movaps %xmm3, %xmm2
+       movaps %xmm4, %xmm3
+       jne LBB_main_4  # cond_true44
+
+There are two problems. 1) No need to two loop induction variables. We can
+compare against 262144 * 16. 2) Poor register allocation decisions. We should
+be able eliminate one of the movaps:
+
+       addps %xmm1, %xmm2
+       subps %xmm3, %xmm2
+       movaps (%ecx), %xmm4
+       movaps %xmm2, %xmm2   <=== Eliminate!
+       addps %xmm4, %xmm2
+       addl $16, %ecx
+       incl %edx
+       cmpl $262144, %edx
+       movaps %xmm3, %xmm1
+       movaps %xmm4, %xmm3
+       jne LBB_main_4  # cond_true44



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

Reply via email to