diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-06-06 23:30:31 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-06-06 23:30:31 +0000 |
commit | d4b91d9d6fa8df0e8b8c68b47c88ecfbbc3896dc (patch) | |
tree | 7abda5b3f104673811b8e999f763c4a5c537a896 /gcc/PROJECTS | |
parent | 6fcf3e75bc0e20b04e25027d3c2de5eaa00d846d (diff) | |
download | gcc-d4b91d9d6fa8df0e8b8c68b47c88ecfbbc3896dc.tar.gz |
Update LCM stuff.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27386 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/PROJECTS')
-rw-r--r-- | gcc/PROJECTS | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/gcc/PROJECTS b/gcc/PROJECTS index 6ff7a0557b0..80f7967522d 100644 --- a/gcc/PROJECTS +++ b/gcc/PROJECTS @@ -33,16 +33,12 @@ Haifa scheduler (haifa-sched.c, loop.[ch], unroll.[ch], genattrtab.c): Improvements to global cse and partial redundancy elimination: -The current implementation of global cse uses partial redundancy elimination -as described in Chow's thesis. - -Long term we want to use lazy code motion as the basis for partial redundancy -elimination. lcm will find as many (or more) redunancies *and* it will -place the remaining computations at computationally optimal placement points -within the function. This reduces the number of redundant operations performed -as well as reducing register lifetimes. My experiments have shown that the -cases were the current PRE code hurts performance are greatly helped by using -lazy code motion. +The current implementation of global cse uses a lazy code motion algorithm +from Muchnick's "Advanced Compiler Design and Implementation". + +Longer term we want to convert to an edge based LCM algorithm using the +new structures defined by flow.c. This allows for better expression +placement and provides edge splitting "for free". lcm also provides the underlying framework for several additional optimizations such as shrink wrapping, spill code motion, dead store elimination, and generic |