diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-03-20 22:22:38 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-03-20 22:22:38 +0000 |
commit | c3c70881cf7457535182add96d0ea96a3a12e9f2 (patch) | |
tree | 8d0cda5db28854ee793c35a1d0c9ed5aafb06bdd /lib | |
parent | 8e59e163db8cd3e7b4c96e438fbedf78bff06707 (diff) | |
download | external_llvm-c3c70881cf7457535182add96d0ea96a3a12e9f2.zip external_llvm-c3c70881cf7457535182add96d0ea96a3a12e9f2.tar.gz external_llvm-c3c70881cf7457535182add96d0ea96a3a12e9f2.tar.bz2 |
Potential spiller improvement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35228 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/README.txt | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/CodeGen/README.txt b/lib/CodeGen/README.txt new file mode 100644 index 0000000..3f29512 --- /dev/null +++ b/lib/CodeGen/README.txt @@ -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. |