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

Chris Lattner lattner at cs.uiuc.edu
Sat Mar 4 17:15:30 PST 2006



Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.63 -> 1.64
---
Log message:

add a note for something evan noticed


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

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


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.63 llvm/lib/Target/X86/README.txt:1.64
--- llvm/lib/Target/X86/README.txt:1.63	Sat Mar  4 01:49:50 2006
+++ llvm/lib/Target/X86/README.txt	Sat Mar  4 19:15:18 2006
@@ -538,3 +538,31 @@
 
 Lower memcpy / memset to a series of SSE 128 bit move instructions when it's
 feasible.
+
+//===---------------------------------------------------------------------===//
+
+Teach the coallescer to commute 2-addr instructions, allowing us to eliminate
+the reg-reg copy in this example:
+
+float foo(int *x, float *y, unsigned c) {
+  float res = 0.0;
+  unsigned i;
+  for (i = 0; i < c; i++) {
+    float xx = (float)x[i];
+    xx = xx * y[i];
+    xx += res;
+    res = xx;
+  }
+  return res;
+}
+
+LBB_foo_3:      # no_exit
+        cvtsi2ss %XMM0, DWORD PTR [%EDX + 4*%ESI]
+        mulss %XMM0, DWORD PTR [%EAX + 4*%ESI]
+        addss %XMM0, %XMM1
+        inc %ESI
+        cmp %ESI, %ECX
+****    movaps %XMM1, %XMM0
+        jb LBB_foo_3    # no_exit
+
+//===---------------------------------------------------------------------===//






More information about the llvm-commits mailing list