diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-17 10:47:59 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-01-17 10:47:59 +0000 |
commit | 67e23d6fc5c5b34e3b5d874aa3a1a6cb894b7ef6 (patch) | |
tree | 87501164890f5046ea55327b6647afe5ac2c9e28 /gcc/loop-iv.c | |
parent | ad1237841efb05f9d73cea299f7e857490ea48ce (diff) | |
download | gcc-67e23d6fc5c5b34e3b5d874aa3a1a6cb894b7ef6.tar.gz |
2014-01-17 Richard Biener <rguenther@suse.de>
PR rtl-optimization/38518
* df.h (df_analyze_loop): Declare.
* df-core.c: Include cfgloop.h.
(df_analyze_1): Split out main part of df_analyze.
(df_analyze): Adjust.
(loop_inverted_post_order_compute): New function.
(loop_post_order_compute): Likewise.
(df_analyze_loop): New function avoiding whole-function
postorder computes.
* loop-invariant.c (find_defs): Use df_analyze_loop.
(find_invariants): Adjust.
* loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206702 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop-iv.c')
-rw-r--r-- | gcc/loop-iv.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c index d03cc406ee2..9091220642c 100644 --- a/gcc/loop-iv.c +++ b/gcc/loop-iv.c @@ -278,10 +278,6 @@ clear_iv_info (void) void iv_analysis_loop_init (struct loop *loop) { - basic_block *body = get_loop_body_in_dom_order (loop), bb; - bitmap blocks = BITMAP_ALLOC (NULL); - unsigned i; - current_loop = loop; /* Clear the information from the analysis of the previous loop. */ @@ -294,11 +290,6 @@ iv_analysis_loop_init (struct loop *loop) else clear_iv_info (); - for (i = 0; i < loop->num_nodes; i++) - { - bb = body[i]; - bitmap_set_bit (blocks, bb->index); - } /* Get rid of the ud chains before processing the rescans. Then add the problem back. */ df_remove_problem (df_chain); @@ -306,14 +297,11 @@ iv_analysis_loop_init (struct loop *loop) df_set_flags (DF_RD_PRUNE_DEAD_DEFS); df_chain_add_problem (DF_UD_CHAIN); df_note_add_problem (); - df_set_blocks (blocks); - df_analyze (); + df_analyze_loop (loop); if (dump_file) df_dump_region (dump_file); check_iv_ref_table_size (); - BITMAP_FREE (blocks); - free (body); } /* Finds the definition of REG that dominates loop latch and stores |