summaryrefslogtreecommitdiff
path: root/lib/CodeGen/README.txt
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-03-20 22:22:38 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-03-20 22:22:38 +0000
commitc3c70881cf7457535182add96d0ea96a3a12e9f2 (patch)
tree8d0cda5db28854ee793c35a1d0c9ed5aafb06bdd /lib/CodeGen/README.txt
parent8e59e163db8cd3e7b4c96e438fbedf78bff06707 (diff)
downloadllvm-c3c70881cf7457535182add96d0ea96a3a12e9f2.tar.gz
llvm-c3c70881cf7457535182add96d0ea96a3a12e9f2.tar.bz2
llvm-c3c70881cf7457535182add96d0ea96a3a12e9f2.tar.xz
Potential spiller improvement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35228 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/README.txt')
-rw-r--r--lib/CodeGen/README.txt27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/CodeGen/README.txt b/lib/CodeGen/README.txt
new file mode 100644
index 0000000000..3f295126fb
--- /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.