+2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
+
+ * loop.h (LOOP_INFO): New accessor macro.
+ * basic-block.h (struct loop): Rename field `info' to `aux'.
+ * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
+ (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
+ * unroll.c (loop_iterations, unroll_loop): Likewise.
+
2000-01-24 Christopher Faylor <cgf@cygnus.com>
* config/i386/t-cygwin: Accomodate new winsup directory layout
/* Allocate and initialize auxiliary loop information. */
loops_info = xcalloc (loops->num, sizeof (struct loop_info));
for (i = 0; i < loops->num; i++)
- loops->array[i].info = loops_info + i;
+ loops->array[i].aux = loops_info + i;
/* Now find all register lifetimes. This must be done after
find_and_verify_loops, because it might reorder the insns in the
register int i;
rtx loop_start = loop->start;
rtx loop_end = loop->end;
- struct loop_info *loop_info = loop->info;
+ struct loop_info *loop_info = LOOP_INFO (loop);
rtx p;
/* 1 if we are scanning insns that could be executed zero times. */
int maybe_never = 0;
#endif
\f
/* Scan a loop setting the elements `cont', `vtop', `loops_enclosed',
- `has_call', `has_volatile', and `has_tablejump' within LOOP_INFO.
+ `has_call', `has_volatile', and `has_tablejump' within LOOP.
Set the global variables `unknown_address_altered',
`unknown_constant_address_altered', and `num_mem_sets'. Also, fill
in the array `loop_mems' and the list `loop_store_mems'. */
{
register int level = 1;
rtx insn;
- struct loop_info *loop_info = loop->info;
+ struct loop_info *loop_info = LOOP_INFO (loop);
rtx start = loop->start;
rtx end = loop->end;
/* The label after END. Jumping here is just like falling off the
int past_loop_latch = 0;
/* Temporary list pointers for traversing loop_iv_list. */
struct iv_class *bl, **backbl;
- struct loop_info *loop_info = loop->info;
+ struct loop_info *loop_info = LOOP_INFO (loop);
/* Ratio of extra register life span we can justify
for saving an instruction. More if loop doesn't call subroutines
since in that case saving an insn makes more difference
int compare_and_branch;
rtx loop_start = loop->start;
rtx loop_end = loop->end;
- struct loop_info *loop_info = loop->info;
+ struct loop_info *loop_info = LOOP_INFO (loop);
/* If last insn is a conditional branch, and the insn before tests a
register value, try to optimize it. Otherwise, we can't do anything. */
unsigned HOST_WIDE_INT n_iterations;
rtx loop_start = loop->start;
rtx loop_end = loop->end;
- struct loop_info *loop_info = loop->info;
+ struct loop_info *loop_info = LOOP_INFO (loop);
int loop_num = loop->num;
#if 0
/* Mark all enclosing loops that they cannot use count register. */
for (outer_loop = loop; outer_loop; outer_loop = outer_loop->outer)
{
- outer_loop_info = outer_loop->info;
+ outer_loop_info = LOOP_INFO (outer_loop);
outer_loop_info->used_count_register = 1;
}
instrument_loop_bct (loop_start, loop_end, GEN_INT (n_iterations));
rtx last_loop_insn;
rtx loop_start = loop->start;
rtx loop_end = loop->end;
- struct loop_info *loop_info = loop->info;
+ struct loop_info *loop_info = LOOP_INFO (loop);
/* Don't bother unrolling huge loops. Since the minimum factor is
two, loops greater than one half of MAX_UNROLLED_INSNS will never
int unsigned_p, compare_dir, final_larger;
rtx last_loop_insn;
rtx reg_term;
- struct loop_info *loop_info = loop->info;
+ struct loop_info *loop_info = LOOP_INFO (loop);
loop_info->n_iterations = 0;
loop_info->initial_value = 0;