From 52b38064755bdf4b3200eeb38bc65ec6d7de870e Mon Sep 17 00:00:00 2001 From: Michael Hayes Date: Tue, 25 Jan 2000 00:38:09 +0000 Subject: [PATCH] loop.h (LOOP_INFO): New accessor macro. 2000-01-25 Michael Hayes * 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. From-SVN: r31596 --- gcc/ChangeLog | 8 ++++++++ gcc/basic-block.h | 2 +- gcc/loop.c | 16 ++++++++-------- gcc/loop.h | 3 +++ gcc/unroll.c | 4 ++-- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c37e2acd619..9c1c1b3d712 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2000-01-25 Michael Hayes + + * 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 * config/i386/t-cygwin: Accomodate new winsup directory layout diff --git a/gcc/basic-block.h b/gcc/basic-block.h index c5c29c9b127..a4e970d9b83 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -274,7 +274,7 @@ struct loop int invalid; /* Auxiliary info specific to a pass. */ - void *info; + void *aux; /* The following are currently used by loop.c but they are likely to disappear as loop.c is converted to use the CFG. */ diff --git a/gcc/loop.c b/gcc/loop.c index 152f9cf2f1b..b297504d2f3 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -467,7 +467,7 @@ loop_optimize (f, dumpfile, unroll_p, bct_p) /* 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 @@ -590,7 +590,7 @@ scan_loop (loop, unroll_p, bct_p) 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; @@ -2366,7 +2366,7 @@ constant_high_bytes (p, loop_start) #endif /* 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'. */ @@ -2377,7 +2377,7 @@ prescan_loop (loop) { 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 @@ -3716,7 +3716,7 @@ strength_reduce (loop, insn_count, unroll_p, bct_p) 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 @@ -7854,7 +7854,7 @@ check_dbra_loop (loop, insn_count) 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. */ @@ -9278,7 +9278,7 @@ insert_bct (loop) 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 @@ -9374,7 +9374,7 @@ insert_bct (loop) /* 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)); diff --git a/gcc/loop.h b/gcc/loop.h index 8c46653b6db..10a7131685a 100644 --- a/gcc/loop.h +++ b/gcc/loop.h @@ -21,6 +21,9 @@ Boston, MA 02111-1307, USA. */ #include "varray.h" #include "basic-block.h" +/* Get the loop info pointer of a loop. */ +#define LOOP_INFO(LOOP) ((struct loop_info *) (LOOP)->aux) + /* Get the luid of an insn. Catch the error of trying to reference the LUID of an insn added during loop, since these don't have LUIDs. */ diff --git a/gcc/unroll.c b/gcc/unroll.c index b166298653e..f325ceaacfb 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -256,7 +256,7 @@ unroll_loop (loop, insn_count, end_insert_before, strength_reduce_p) 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 @@ -3635,7 +3635,7 @@ loop_iterations (loop) 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; -- 2.30.2