summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/README.txt
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2007-02-23 05:02:36 +0000
committerDale Johannesen <dalej@apple.com>2007-02-23 05:02:36 +0000
commit88e37ae36652546c8e409cab69a1777af63cf095 (patch)
treebc07aee27c5ee78e41087f13b1f2df5c9e0d7420 /lib/Target/ARM/README.txt
parent0430a8df0e80b73a5dc1a33ef217e977e704e7b8 (diff)
downloadllvm-88e37ae36652546c8e409cab69a1777af63cf095.tar.gz
llvm-88e37ae36652546c8e409cab69a1777af63cf095.tar.bz2
llvm-88e37ae36652546c8e409cab69a1777af63cf095.tar.xz
rewrite of constant islands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34523 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/README.txt')
-rw-r--r--lib/Target/ARM/README.txt28
1 files changed, 14 insertions, 14 deletions
diff --git a/lib/Target/ARM/README.txt b/lib/Target/ARM/README.txt
index 04bf9588ad..c7987a7974 100644
--- a/lib/Target/ARM/README.txt
+++ b/lib/Target/ARM/README.txt
@@ -17,20 +17,20 @@ Reimplement 'select' in terms of 'SEL'.
//===---------------------------------------------------------------------===//
-The constant island pass is extremely naive. If a constant pool entry is
-out of range, it *always* splits a block and inserts a copy of the cp
-entry inline. It should:
-
-1. Check to see if there is already a copy of this constant nearby. If so,
- reuse it.
-2. Instead of always splitting blocks to insert the constant, insert it in
- nearby 'water'.
-3. Constant island references should be ref counted. If a constant reference
- is out-of-range, and the last reference to a constant is relocated, the
- dead constant should be removed.
-
-This pass has all the framework needed to implement this, but it hasn't
-been done.
+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:
+
+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.
+
+2. WaterBlockListOffsets might be maintained throughout, rather than computed
+when it is needed. This would probably lead to faster compile times.
+Similarly, the offsets of blocks might be maintained throughout.
+
+3. There may be some advantage to trying to be smarter about the initial
+placement, rather than putting everything at the end.
//===---------------------------------------------------------------------===//