mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-23 14:30:50 +00:00
Potential spiller improvement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35228 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8e59e163db
commit
c3c70881cf
27
lib/CodeGen/README.txt
Normal file
27
lib/CodeGen/README.txt
Normal file
@ -0,0 +1,27 @@
|
||||
Common register allocation / spilling problem:
|
||||
|
||||
mul lr, r4, lr
|
||||
str lr, [sp, #+52]
|
||||
ldr lr, [r1, #+32]
|
||||
sxth r3, r3
|
||||
ldr r4, [sp, #+52]
|
||||
mla r4, r3, lr, r4
|
||||
|
||||
can be:
|
||||
|
||||
mul lr, r4, lr
|
||||
mov r4, lr
|
||||
str lr, [sp, #+52]
|
||||
ldr lr, [r1, #+32]
|
||||
sxth r3, r3
|
||||
mla r4, r3, lr, r4
|
||||
|
||||
and then "merge" mul and mov:
|
||||
|
||||
mul r4, r4, lr
|
||||
str lr, [sp, #+52]
|
||||
ldr lr, [r1, #+32]
|
||||
sxth r3, r3
|
||||
mla r4, r3, lr, r4
|
||||
|
||||
It also increase the likelyhood the store may become dead.
|
Loading…
x
Reference in New Issue
Block a user