Steven Bosscher wrote:
Hello,
When fwprop gets approved, CSE path following will disappear. We lose
virtually no optimization opportunities. Still, it should not be very
hard to make CSE work on extended basic blocks (but without rescanning
like path following does). All that would be needed is infrastructure
in cse.c to do a pre-order walk starting from some basic block, and a
way to store and roll-back the state of the various tables that cse.c
builds.
I found out long ago that even longer ago Vlad had patches to keep the
state for basic blocks and re-using it. The latest message mentioning
this work is http://gcc.gnu.org/ml/gcc-patches/2001-02/msg01166.html,
and apparently Vlad's patches never made it out of the Cygnus network.
So...
Does anyone of you pack-rats still have these patches? Maybe there is
code in them that I can re-use, or at least learn from because right
now, even in my cleaned-up-and-cut-down version of cse.c (down to 5000
lines) I still can't make a whole lot of sense of all the tables that
are used in that pass.
I am sorry to say but I think it was lost. The patch was created in
1998 or 1999 and posted on internal website with benchmark results.
During IT reorganization after Redhat bought Cygnus, the page was lost.
As I remeber the big speedup was achieved on some specific programs. I
did not submit the patch (into Cygnus repository or egcs one) because
the code generated with the patch was a bit worse. Although originally
the code was supposed to be the same. I failed to find the reasons for
this that time.
Vlad