basic-block.h (edge_iterator): Keep the address of VEC(edge) *.

* basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
	(ei_container): New; renamed.
	(ei_start, ei_last): New macros.
	(ei_start_1, ei_last_1): Renamed from ei_start.
	(ei_last_1, ei_end_p): Use ei_container() where applicable.
	(ei_one_before_end_p, ei_next, ei_edge): Likewise.
	* gcse.c (remove_reachable_equiv_notes): Use ei_container().

From-SVN: r88966
This commit is contained in:
Ben Elliston 2004-10-13 04:33:28 +00:00 committed by Ben Elliston
parent 86df10e35e
commit f76ccf602e
3 changed files with 30 additions and 10 deletions

View file

@ -1,3 +1,13 @@
2004-10-12 Ben Elliston <bje@au.ibm.com>
* basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
(ei_container): New; renamed.
(ei_start, ei_last): New macros.
(ei_start_1, ei_last_1): Renamed from ei_start.
(ei_last_1, ei_end_p): Use ei_container() where applicable.
(ei_one_before_end_p, ei_next, ei_edge): Likewise.
* gcse.c (remove_reachable_equiv_notes): Use ei_container().
2004-10-11 Sebastian Pop <pop@cri.ensmp.fr>
* Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.

View file

@ -563,12 +563,22 @@ struct edge_list
typedef struct {
unsigned index;
VEC(edge) *container;
VEC(edge) **container;
} edge_iterator;
static inline VEC(edge) *
ei_container (edge_iterator i)
{
gcc_assert (i.container);
return *i.container;
}
#define ei_start(iter) ei_start_1 (&(iter))
#define ei_last(iter) ei_last_1 (&(iter))
/* Return an iterator pointing to the start of an edge vector. */
static inline edge_iterator
ei_start (VEC(edge) *ev)
ei_start_1 (VEC(edge) **ev)
{
edge_iterator i;
@ -581,11 +591,11 @@ ei_start (VEC(edge) *ev)
/* Return an iterator pointing to the last element of an edge
vector. */
static inline edge_iterator
ei_last (VEC(edge) *ev)
ei_last_1 (VEC(edge) **ev)
{
edge_iterator i;
i.index = EDGE_COUNT (ev) - 1;
i.index = EDGE_COUNT (*ev) - 1;
i.container = ev;
return i;
@ -595,7 +605,7 @@ ei_last (VEC(edge) *ev)
static inline bool
ei_end_p (edge_iterator i)
{
return (i.index == EDGE_COUNT (i.container));
return (i.index == EDGE_COUNT (ei_container (i)));
}
/* Is the iterator `i' at one position before the end of the
@ -603,14 +613,14 @@ ei_end_p (edge_iterator i)
static inline bool
ei_one_before_end_p (edge_iterator i)
{
return (i.index + 1 == EDGE_COUNT (i.container));
return (i.index + 1 == EDGE_COUNT (ei_container (i)));
}
/* Advance the iterator to the next element. */
static inline void
ei_next (edge_iterator *i)
{
gcc_assert (i->index < EDGE_COUNT (i->container));
gcc_assert (i->index < EDGE_COUNT (ei_container (*i)));
i->index++;
}
@ -626,7 +636,7 @@ ei_prev (edge_iterator *i)
static inline edge
ei_edge (edge_iterator i)
{
return EDGE_I (i.container, i.index);
return EDGE_I (ei_container (i), i.index);
}
/* Return an edge pointed to by the iterator. Do it safely so that

View file

@ -6293,7 +6293,7 @@ remove_reachable_equiv_notes (basic_block bb, struct ls_expr *smexpr)
sbitmap_zero (visited);
act = (EDGE_COUNT (ei.container) > 0 ? EDGE_I (ei.container, 0) : NULL);
act = (EDGE_COUNT (ei_container (ei)) > 0 ? EDGE_I (ei_container (ei), 0) : NULL);
while (1)
{
if (!act)
@ -6351,7 +6351,7 @@ remove_reachable_equiv_notes (basic_block bb, struct ls_expr *smexpr)
if (act)
stack[sp++] = ei;
ei = ei_start (bb->succs);
act = (EDGE_COUNT (ei.container) > 0 ? EDGE_I (ei.container, 0) : NULL);
act = (EDGE_COUNT (ei_container (ei)) > 0 ? EDGE_I (ei_container (ei), 0) : NULL);
}
}
}