+2013-03-22 Richard Biener <rguenther@suse.de>
+
+ * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
+ (gather_mem_refs_in_loops): Do not compute it.
+ (analyze_memory_references): Do not allocate it.
+ (tree_ssa_lim_finalize): Do not free it.
+ (for_all_locs_in_loop): Do not query all_refs_in_loop.
+
2013-03-22 Richard Biener <rguenther@suse.de>
* is-a.h (as_a): Use gcc_checking_assert.
/* The set of memory references stored in each loop. */
vec<bitmap> refs_stored_in_loop;
- /* The set of memory references accessed in each loop, including
- subloops. */
- vec<bitmap> all_refs_in_loop;
-
/* The set of memory references stored in each loop, including subloops . */
vec<bitmap> all_refs_stored_in_loop;
FOR_EACH_LOOP (li, loop, LI_FROM_INNERMOST)
{
/* Finalize the overall touched references (including subloops). */
- bitmap_ior_into (memory_accesses.all_refs_in_loop[loop->num],
- memory_accesses.refs_in_loop[loop->num]);
bitmap_ior_into (memory_accesses.all_refs_stored_in_loop[loop->num],
memory_accesses.refs_stored_in_loop[loop->num]);
if (outer == current_loops->tree_root)
continue;
- bitmap_ior_into (memory_accesses.all_refs_in_loop[outer->num],
- memory_accesses.all_refs_in_loop[loop->num]);
bitmap_ior_into (memory_accesses.all_refs_stored_in_loop[outer->num],
memory_accesses.all_refs_stored_in_loop[loop->num]);
}
memory_accesses.refs_in_loop.create (number_of_loops ());
memory_accesses.refs_stored_in_loop.create (number_of_loops ());
- memory_accesses.all_refs_in_loop.create (number_of_loops ());
memory_accesses.all_refs_stored_in_loop.create (number_of_loops ());
for (i = 0; i < number_of_loops (); i++)
empty = BITMAP_ALLOC (&lim_bitmap_obstack);
memory_accesses.refs_stored_in_loop.quick_push (empty);
empty = BITMAP_ALLOC (&lim_bitmap_obstack);
- memory_accesses.all_refs_in_loop.quick_push (empty);
- empty = BITMAP_ALLOC (&lim_bitmap_obstack);
memory_accesses.all_refs_stored_in_loop.quick_push (empty);
}
{
unsigned i;
mem_ref_loc_p loc;
- bitmap refs = memory_accesses.all_refs_in_loop[loop->num];
struct loop *subloop;
- if (!bitmap_bit_p (refs, ref->id))
- return false;
-
if (ref->accesses_in_loop.length () > (unsigned) loop->num)
FOR_EACH_VEC_ELT (ref->accesses_in_loop[loop->num], i, loc)
if (fn (loc))
memory_accesses.refs_in_loop.release ();
memory_accesses.refs_stored_in_loop.release ();
- memory_accesses.all_refs_in_loop.release ();
memory_accesses.all_refs_stored_in_loop.release ();
if (memory_accesses.ttae_cache)