Bill's example is still not enough to repro this, but it has other issues that
authorChris Lattner <sabre@nondot.org>
Wed, 3 Oct 2007 03:40:24 +0000 (03:40 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 3 Oct 2007 03:40:24 +0000 (03:40 +0000)
seem significant as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42564 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/README.txt

index 0fd79f236111860da995d6b08df55570869bc5fe..39c8a02e31383a9c6d74da7e2dbe4e5964009cb6 100644 (file)
@@ -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).