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
This commit is contained in:
Chris Lattner 2007-10-03 03:40:24 +00:00
parent 471ab54df7
commit 67a1af9709

View File

@ -1277,6 +1277,14 @@ LBB3_5: # bb114.preheader
movl %eax, -96(%ebp) movl %eax, -96(%ebp)
movw $0, -98(%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 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 change, so we could simply subtract %eax from %ecx first and then use %ecx (or
vice-versa). vice-versa).