summaryrefslogtreecommitdiff
path: root/gcc/loop-invariant.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-23 11:48:32 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-23 11:48:32 +0000
commitf6fc17d03f28a94e35a53d0562595ea179ae2629 (patch)
treee32f9a0a6bdc05a424906b384d8c31c4fa78eb35 /gcc/loop-invariant.c
parent8e6ce8a843f5da1c63f8e21c58188e7b7f1a471f (diff)
downloadgcc-f6fc17d03f28a94e35a53d0562595ea179ae2629.tar.gz
2014-01-23 Basile Starynkevitch <basile@starynkevitch.net>
{{merge using svnmerge.py with trunk GCC 4.9 svn rev.206958. All is well compiled.}} git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@206959 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop-invariant.c')
-rw-r--r--gcc/loop-invariant.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index b31b9268ead..100a2c1b7ff 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -652,14 +652,8 @@ may_assign_reg_p (rtx x)
BODY. */
static void
-find_defs (struct loop *loop, basic_block *body)
+find_defs (struct loop *loop)
{
- unsigned i;
- bitmap blocks = BITMAP_ALLOC (NULL);
-
- for (i = 0; i < loop->num_nodes; i++)
- bitmap_set_bit (blocks, body[i]->index);
-
if (dump_file)
{
fprintf (dump_file,
@@ -670,9 +664,8 @@ find_defs (struct loop *loop, basic_block *body)
df_remove_problem (df_chain);
df_process_deferred_rescans ();
df_chain_add_problem (DF_UD_CHAIN);
- df_set_blocks (blocks);
df_set_flags (DF_RD_PRUNE_DEAD_DEFS);
- df_analyze ();
+ df_analyze_loop (loop);
check_invariant_table_size ();
if (dump_file)
@@ -682,8 +675,6 @@ find_defs (struct loop *loop, basic_block *body)
"*****ending processing of loop %d ******\n",
loop->num);
}
-
- BITMAP_FREE (blocks);
}
/* Creates a new invariant for definition DEF in INSN, depending on invariants
@@ -1005,7 +996,7 @@ find_invariants (struct loop *loop)
compute_always_reached (loop, body, may_exit, always_reached);
compute_always_reached (loop, body, has_exit, always_executed);
- find_defs (loop, body);
+ find_defs (loop);
find_invariants_body (loop, body, always_reached, always_executed);
merge_identical_invariants ();