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:
parent
86df10e35e
commit
f76ccf602e
3 changed files with 30 additions and 10 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue