aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-10-03 03:40:24 +0000
committerChris Lattner <sabre@nondot.org>2007-10-03 03:40:24 +0000
commit67a1af9709f1b4af653b6c38ab4299d41f8d4380 (patch)
tree27c07c78faea43a86832d7f0a4ec94565f208050
parent471ab54df756f2f48c9146ad897672662c3f25f9 (diff)
Bill's example is still not enough to repro this, but it has other issues that
seem significant as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42564 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/README.txt8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt
index 0fd79f2361..39c8a02e31 100644
--- a/lib/Target/X86/README.txt
+++ b/lib/Target/X86/README.txt
@@ -1277,6 +1277,14 @@ LBB3_5: # bb114.preheader
movl %eax, -96(%ebp)
movw $0, -98(%ebp)
+This appears to be bad because the RA is not folding the store to the stack
+slot into the movl. The above instructions could be:
+ movl $32, -80(%ebp)
+...
+ movl $32, -84(%ebp)
+...
+This seems like a cross between remat and spill folding.
+
This has redundant subtractions of %eax from a stack slot. However, %ecx doesn't
change, so we could simply subtract %eax from %ecx first and then use %ecx (or
vice-versa).