summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-04-20 20:18:43 +0000
committerChris Lattner <sabre@nondot.org>2007-04-20 20:18:43 +0000
commit93305bc4620c12042b11a5e721feda7892d2f65d (patch)
tree7dcab32cda17b60507d5bb53868c18ab89e7fcb6 /lib
parent58d7fbf250659246fcca9417a91170a681b1850a (diff)
downloadllvm-93305bc4620c12042b11a5e721feda7892d2f65d.tar.gz
llvm-93305bc4620c12042b11a5e721feda7892d2f65d.tar.bz2
llvm-93305bc4620c12042b11a5e721feda7892d2f65d.tar.xz
add a crazy idea
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36273 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/ARM/README.txt12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/ARM/README.txt b/lib/Target/ARM/README.txt
index 417f4a30c3..a75007cd4f 100644
--- a/lib/Target/ARM/README.txt
+++ b/lib/Target/ARM/README.txt
@@ -17,6 +17,18 @@ Reimplement 'select' in terms of 'SEL'.
//===---------------------------------------------------------------------===//
+Crazy idea: Consider code that uses lots of 8-bit or 16-bit values. By the
+time regalloc happens, these values are now in a 32-bit register, usually with
+the top-bits known to be sign or zero extended. If spilled, we should be able
+to spill these to a 8-bit or 16-bit stack slot, zero or sign extending as part
+of the reload.
+
+Doing this reduces the size of the stack frame (important for thumb etc), and
+also increases the likelihood that we will be able to reload multiple values
+from the stack with a single load.
+
+//===---------------------------------------------------------------------===//
+
The constant island pass is in good shape. Some cleanups might be desirable,
but there is unlikely to be much improvement in the generated code.