From 3578dd61c6f9a4110ef2a38fac3993e0ebaa861c Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Tue, 20 Mar 2007 22:22:38 +0000 Subject: [PATCH] Potential spiller improvement. llvm-svn: 35228 --- llvm/lib/CodeGen/README.txt | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 llvm/lib/CodeGen/README.txt diff --git a/llvm/lib/CodeGen/README.txt b/llvm/lib/CodeGen/README.txt new file mode 100644 index 000000000000..3f295126fb31 --- /dev/null +++ b/llvm/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.