Add intelligence about where to break large blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34755 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/README.txt b/lib/Target/ARM/README.txt
index 9f28581..5892ac6 100644
--- a/lib/Target/ARM/README.txt
+++ b/lib/Target/ARM/README.txt
@@ -17,24 +17,19 @@
//===---------------------------------------------------------------------===//
-The constant island pass has been much improved; all the todo items in the
-previous version of this document have been addressed. However, there are still
-things that can be done:
+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.
-1. When there isn't an existing water, the current MBB is split right after
-the use. It would be profitable to look farther forward, especially on Thumb,
-where negative offsets won't work.
-(Partially fixed: it will put the island at the end of the block if that is
-in range. If it is not in range things still work as above, which is poor on
-Thumb.)
-
-2. There may be some advantage to trying to be smarter about the initial
+1. There may be some advantage to trying to be smarter about the initial
placement, rather than putting everything at the end.
-3. The handling of 2-byte padding for Thumb is overly conservative. There
+2. The handling of 2-byte padding for Thumb is overly conservative. There
would be a small gain to keeping accurate track of the padding (which would
require aligning functions containing constant pools to 4-byte boundaries).
+3. There might be some compile-time efficiency to be had by representing
+consecutive islands as a single block rather than multiple blocks.
+
//===---------------------------------------------------------------------===//
We need to start generating predicated instructions. The .td files have a way