summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/README-Thumb.txt
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/ARM/README-Thumb.txt')
-rw-r--r--llvm/lib/Target/ARM/README-Thumb.txt17
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/README-Thumb.txt b/llvm/lib/Target/ARM/README-Thumb.txt
new file mode 100644
index 00000000000..e9e943d0ae2
--- /dev/null
+++ b/llvm/lib/Target/ARM/README-Thumb.txt
@@ -0,0 +1,17 @@
+//===---------------------------------------------------------------------===//
+// Random ideas for the ARM backend (Thumb specific).
+//===---------------------------------------------------------------------===//
+
+* Add support for compiling functions in both ARM and Thumb mode, then taking
+ the smallest.
+* Add support for compiling individual basic blocks in thumb mode, when in a
+ larger ARM function. This can be used for presumed cold code, like paths
+ to abort (failure path of asserts), EH handling code, etc.
+
+* Thumb doesn't have normal pre/post increment addressing modes, but you can
+ load/store 32-bit integers with pre/postinc by using load/store multiple
+ instrs with a single register.
+
+* Make better use of high registers r8, r10, r11, r12 (ip). Some variants of add
+ and cmp instructions can use high registers. Also, we can use them as
+ temporaries to spill values into.
OpenPOWER on IntegriCloud