Commit a42cd965 by Andrew MacLeod Committed by Jeff Law

basic-block.h (pre_edge_lcm, [...]): Prototype for exported functions.

        * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
        Prototype for exported functions.
        (pre_lcm, pre_rev_lcm): Remove prototypes.
        * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
        (compute_available): Move to lcm.c, and change parameter order.
        (one_classic_gcse_pass): Call compute_ae_kill with parameters.
        (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
        (gcse_main): No longer call compute_preds_succs.  Rebuild the
        set table after reach pre pass.
        (pre_insert_map, pre_delete_map, edge_list): New.
        (alloc_pre_mem): Allocate edge vectors.
        (free_pre_mem): Delete edge vectors.
        (compute_pre_data): Call new edge based lcm routines.
        (process_insert_insn): New function.
        (insert_insn_end_bb): Use it.
        (pre_edge_insert): New function.
        (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
        needed.
        (pre_insert_copies): Revamp using new edge based lcm outputs.
        (pre_delete): Likewise.
        (one_pre_gcse_pass): Insert & remove fake edges to the exit
        block.
        (compute_code_hoist_vbeinout): New new edge based routines.
        * lcm.c: Remove all the old LCM functions.  Replace with new ones
        that work with the new cfg datastructures and work with edges
        instead of blocks.

From-SVN: r30055
parent 3cce638b
...@@ -6,8 +6,23 @@ Sun Oct 17 02:09:50 1999 Andrew MacLeod <amacleod@cygnus.com> ...@@ -6,8 +6,23 @@ Sun Oct 17 02:09:50 1999 Andrew MacLeod <amacleod@cygnus.com>
* gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters. * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
(compute_available): Move to lcm.c, and change parameter order. (compute_available): Move to lcm.c, and change parameter order.
(one_classic_gcse_pass): Call compute_ae_kill with parameters. (one_classic_gcse_pass): Call compute_ae_kill with parameters.
(pre_insert): Delete. (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
(gcse_main): No longer call compute_preds_succs. Rebuild the
set table after reach pre pass.
(pre_insert_map, pre_delete_map, edge_list): New.
(alloc_pre_mem): Allocate edge vectors.
(free_pre_mem): Delete edge vectors.
(compute_pre_data): Call new edge based lcm routines.
(process_insert_insn): New function.
(insert_insn_end_bb): Use it.
(pre_edge_insert): New function.
(pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as
needed.
(pre_insert_copies): Revamp using new edge based lcm outputs.
(pre_delete): Likewise.
(one_pre_gcse_pass): Insert & remove fake edges to the exit
block.
(compute_code_hoist_vbeinout): New new edge based routines.
* lcm.c: Remove all the old LCM functions. Replace with new ones * lcm.c: Remove all the old LCM functions. Replace with new ones
that work with the new cfg datastructures and work with edges that work with the new cfg datastructures and work with edges
instead of blocks. instead of blocks.
......
...@@ -310,11 +310,13 @@ extern void update_life_info PROTO ((sbitmap, enum update_life_extent)); ...@@ -310,11 +310,13 @@ extern void update_life_info PROTO ((sbitmap, enum update_life_extent));
extern int count_or_remove_death_notes PROTO ((sbitmap, int)); extern int count_or_remove_death_notes PROTO ((sbitmap, int));
/* In lcm.c */ /* In lcm.c */
extern void pre_lcm PROTO ((int, int, int_list_ptr *, extern struct edge_list *pre_edge_lcm PROTO ((FILE *, int, sbitmap *,
int_list_ptr *, sbitmap *, sbitmap *,
sbitmap *, sbitmap *, sbitmap *, sbitmap **,
sbitmap *, sbitmap *)); sbitmap **));
extern void pre_rev_lcm PROTO ((int, int, int_list_ptr *, extern struct edge_list *pre_edge_rev_lcm PROTO ((FILE *, int, sbitmap *,
int_list_ptr *, sbitmap *, sbitmap *,
sbitmap *, sbitmap *, sbitmap *, sbitmap **,
sbitmap **));
extern int compute_available PROTO ((sbitmap *, sbitmap *,
sbitmap *, sbitmap *)); sbitmap *, sbitmap *));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment