diff options
author | Dale Johannesen <dalej@apple.com> | 2007-02-23 05:02:36 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2007-02-23 05:02:36 +0000 |
commit | 88e37ae36652546c8e409cab69a1777af63cf095 (patch) | |
tree | bc07aee27c5ee78e41087f13b1f2df5c9e0d7420 /lib/Target/ARM/README.txt | |
parent | 0430a8df0e80b73a5dc1a33ef217e977e704e7b8 (diff) | |
download | llvm-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.txt | 28 |
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. //===---------------------------------------------------------------------===// |