2001-07-16 Daniel Berlin <dan@cgsoftware.com>
commit42334a67235b185faf590508c5e12cf7a9745faa
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 3 Aug 2001 16:52:01 +0000 (3 16:52 +0000)
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 3 Aug 2001 16:52:01 +0000 (3 16:52 +0000)
treea59239bd456400b3c2358c1d1d7db15e2eba19d4
parent97e1cc1083f8ded5d32782aff11997676af4655d
2001-07-16  Daniel Berlin  <dan@cgsoftware.com>

        * gcse.c: Include df.h for use as a dataflow analyzer.
        Remove regvec.
        Declaration of reg_set_info: gone.
        New df_analyzer variable used by store motion.
        (reg_set_info): Deleted.
        (mark_mem_regs): New function, analyze regs used by a mem.
        (store_ops_ok): Use dataflow analyzer results to determine if
        necessary regs are changed in the block.
        (find_moveable_store): Remove check for symbol ref, we can handle
        much more complex expressions now.
        (compute_store_table): Remove most of the code, it's unnecessary
        now that the dataflow analyzer records the info for us.
        (store_killed_after): Add parameter to say whether to do the
        store_ops_okay test, used to speed up testing when we already know
        the answer, and just want to know if the store itself was killed.
        (build_store_vector): Largely rewritten to calculate the various
        vectors properly, and somewhat optimized.
        (store_motion): Init the df_analyzer, get REG_DEF chains.
        Also handle trapping expressions (since mems almost always trap)
        (simple_mem): Redefine what a simple mem is.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44603 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/gcse.c