collect2.c (scan_prog_file, [...]): Prototype function pointers and casts for int_handler' and quit_handler'.

* collect2.c (scan_prog_file, scan_libraries): Prototype function
       pointers and casts for `int_handler' and `quit_handler'.

       * flow.c (verify_flow_info, split_hard_reg_notes,
       find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
       remove_edge, remove_fake_successors): Add static prototypes.
       (verify_flow_info): Wrap with macro ENABLE_CHECKING.
       (mark_set_1): Initialize variable `regno'.
       (unlink_insn_chain): Likewise for variable `curr'.
       (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.

       * loop.c (strength_reduce): Initialize variable
       `unrolled_insn_copies'.
       (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
       prototypes.  Change these functions to take const PTR parameters
       to avoid prototype conflict when used as the comparson argument
       for qsort.
       (check_dbra_loop): Initialize variable `comparison_val'.

       * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
       (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
       (find_valid_class): Initialize variable `best_class'.
       (find_reloads): Call memcpy, not bcopy.

       * reload1.c (gen_mode_int, dump_needs): Add prototypes.
       (hard_reg_use_compare): Don't needlessly cast away const.
       (reload_reg_class_lower): Likewise.
       (choose_reload_regs): Initialize variable `regno'.

From-SVN: r29840
This commit is contained in:
Kaveh R. Ghazi 1999-10-06 14:48:41 +00:00 committed by Kaveh Ghazi
parent 1e0a44093b
commit f428f25240
6 changed files with 90 additions and 35 deletions

View File

@ -1,3 +1,34 @@
Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* collect2.c (scan_prog_file, scan_libraries): Prototype function
pointers and casts for `int_handler' and `quit_handler'.
* flow.c (verify_flow_info, split_hard_reg_notes,
find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
remove_edge, remove_fake_successors): Add static prototypes.
(verify_flow_info): Wrap with macro ENABLE_CHECKING.
(mark_set_1): Initialize variable `regno'.
(unlink_insn_chain): Likewise for variable `curr'.
(remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
* loop.c (strength_reduce): Initialize variable
`unrolled_insn_copies'.
(cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
prototypes. Change these functions to take const PTR parameters
to avoid prototype conflict when used as the comparson argument
for qsort.
(check_dbra_loop): Initialize variable `comparison_val'.
* reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
(get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
(find_valid_class): Initialize variable `best_class'.
(find_reloads): Call memcpy, not bcopy.
* reload1.c (gen_mode_int, dump_needs): Add prototypes.
(hard_reg_use_compare): Don't needlessly cast away const.
(reload_reg_class_lower): Likewise.
(choose_reload_regs): Initialize variable `regno'.
Tue Oct 5 16:34:12 1999 Paul Burchard <burchard@pobox.com>
* ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.

View File

@ -2094,8 +2094,8 @@ scan_prog_file (prog_name, which_pass)
const char *prog_name;
enum pass which_pass;
{
void (*int_handler) ();
void (*quit_handler) ();
void (*int_handler) PROTO ((int));
void (*quit_handler) PROTO ((int));
char *real_nm_argv[4];
const char **nm_argv = (const char **) real_nm_argv;
int pid;
@ -2162,9 +2162,9 @@ scan_prog_file (prog_name, which_pass)
}
/* Parent context from here on. */
int_handler = (void (*) ())signal (SIGINT, SIG_IGN);
int_handler = (void (*) PROTO ((int))) signal (SIGINT, SIG_IGN);
#ifdef SIGQUIT
quit_handler = (void (*) ())signal (SIGQUIT, SIG_IGN);
quit_handler = (void (*) PROTO ((int))) signal (SIGQUIT, SIG_IGN);
#endif
if (close (pipe_fd[1]) < 0)
@ -2539,8 +2539,8 @@ scan_libraries (prog_name)
{
static struct head libraries; /* list of shared libraries found */
struct id *list;
void (*int_handler) ();
void (*quit_handler) ();
void (*int_handler) PROTO ((int));
void (*quit_handler) PROTO ((int));
char *real_ldd_argv[4];
const char **ldd_argv = (const char **) real_ldd_argv;
int pid;
@ -2604,9 +2604,9 @@ scan_libraries (prog_name)
}
/* Parent context from here on. */
int_handler = (void (*) ()) signal (SIGINT, SIG_IGN);
int_handler = (void (*) PROTO ((int))) signal (SIGINT, SIG_IGN);
#ifdef SIGQUIT
quit_handler = (void (*) ()) signal (SIGQUIT, SIG_IGN);
quit_handler = (void (*) PROTO ((int))) signal (SIGQUIT, SIG_IGN);
#endif
if (close (pipe_fd[1]) < 0)

View File

@ -354,7 +354,15 @@ static int maybe_add_dead_note PROTO ((rtx, rtx, rtx));
static int sets_reg_or_subreg PROTO ((rtx, rtx));
static void update_n_sets PROTO ((rtx, int));
static void new_insn_dead_notes PROTO ((rtx, rtx, rtx, rtx, rtx, rtx));
void verify_flow_info PROTO ((void));
#ifdef ENABLE_CHECKING
static void verify_flow_info PROTO ((void));
#endif
static void split_hard_reg_notes PROTO ((rtx, rtx, rtx, rtx));
static rtx find_insn_with_note PROTO ((rtx, rtx, rtx));
static void sets_reg_or_subreg_1 PROTO ((rtx, rtx));
static rtx prepend_reg_notes PROTO ((rtx, rtx));
static void remove_edge PROTO ((edge));
static void remove_fake_successors PROTO ((basic_block));
/* Find basic blocks of the current function.
F is the first insn of the function and NREGS the number of register
@ -3529,7 +3537,7 @@ mark_set_1 (needed, dead, x, insn, significant)
rtx insn;
regset significant;
{
register int regno;
register int regno = -1;
register rtx reg = SET_DEST (x);
/* Some targets place small structures in registers for
@ -5419,7 +5427,7 @@ unlink_insn_chain (start, finish)
rtx start, finish;
{
rtx insert_point = PREV_INSN (start);
rtx chain = NULL_RTX, curr;
rtx chain = NULL_RTX, curr = NULL_RTX;
/* Unchain the insns one by one. It would be quicker to delete all
of these with a single unchaining, rather than one at a time, but
@ -5625,7 +5633,7 @@ maybe_add_dead_note_use (insn, dest)
/* Find the first insn in the set of insns from FIRST to LAST inclusive
that contains the note NOTE. */
rtx
static rtx
find_insn_with_note (note, first, last)
rtx note, first, last;
{
@ -6472,7 +6480,8 @@ replace_insns (first, last, first_new, notes)
In future it can be extended check a lot of other stuff as well
(reachability of basic blocks, life information, etc. etc.). */
void
#ifdef ENABLE_CHECKING
static void
verify_flow_info ()
{
const int max_uid = get_max_uid ();
@ -6675,6 +6684,7 @@ verify_flow_info ()
x = NEXT_INSN (x);
}
}
#endif
/* Functions to access an edge list with a vector representation.
Enough data is kept such that given an index number, the
@ -6998,12 +7008,10 @@ void
remove_fake_edges ()
{
int x;
edge e;
basic_block bb;
for (x = 0; x < n_basic_blocks; x++)
{
edge tmp, last = NULL;
bb = BASIC_BLOCK (x);
remove_fake_successors (bb);
}

View File

@ -3714,7 +3714,7 @@ strength_reduce (scan_start, end, loop_top, insn_count,
rtx end_insert_before;
int loop_depth = 0;
int n_extra_increment;
int unrolled_insn_copies;
int unrolled_insn_copies = 0;
/* If scan_start points to the loop exit test, we have to be wary of
subversive use of gotos inside expression statements. */
@ -6268,8 +6268,10 @@ general_induction_var (x, src_reg, add_val, mult_val, is_addr, pbenefit)
*BENEFIT will be incremented by the benefit of any sub-giv encountered. */
static rtx sge_plus PROTO ((enum machine_mode, rtx, rtx));
static rtx sge_plus_constant PROTO ((rtx, rtx));
static rtx sge_plus PARAMS ((enum machine_mode, rtx, rtx));
static rtx sge_plus_constant PARAMS ((rtx, rtx));
static int cmp_combine_givs_stats PARAMS ((const PTR, const PTR));
static int cmp_recombine_givs_stats PARAMS ((const PTR, const PTR));
static rtx
simplify_giv_expr (x, benefit)
@ -7015,9 +7017,14 @@ struct combine_givs_stats
};
static int
cmp_combine_givs_stats (x, y)
struct combine_givs_stats *x, *y;
cmp_combine_givs_stats (xp, yp)
const PTR xp;
const PTR yp;
{
const struct combine_givs_stats * const x =
(const struct combine_givs_stats *) xp;
const struct combine_givs_stats * const y =
(const struct combine_givs_stats *) yp;
int d;
d = y->total_benefit - x->total_benefit;
/* Stabilize the sort. */
@ -7202,9 +7209,14 @@ struct recombine_givs_stats
when scanning the array starting at the end, thus the arguments are
used in reverse. */
static int
cmp_recombine_givs_stats (x, y)
struct recombine_givs_stats *x, *y;
cmp_recombine_givs_stats (xp, yp)
const PTR xp;
const PTR yp;
{
const struct recombine_givs_stats * const x =
(const struct recombine_givs_stats *) xp;
const struct recombine_givs_stats * const y =
(const struct recombine_givs_stats *) yp;
int d;
d = y->start_luid - x->start_luid;
/* Stabilize the sort. */
@ -7994,7 +8006,7 @@ check_dbra_loop (loop_end, insn_count, loop_start, loop_info)
|| (GET_CODE (comparison) == LE
&& no_use_except_counting)))
{
HOST_WIDE_INT add_val, add_adjust, comparison_val;
HOST_WIDE_INT add_val, add_adjust, comparison_val = 0;
rtx initial_value, comparison_value;
int nonneg = 0;
enum rtx_code cmp_code;

View File

@ -272,6 +272,8 @@ static rtx find_reloads_subreg_address PROTO((rtx, int, int, enum reload_type,
int, rtx));
static int find_inc_amount PROTO((rtx, rtx));
static int loc_mentioned_in_p PROTO((rtx *, rtx));
extern void debug_reload_to_stream PROTO((FILE *));
extern void debug_reload PROTO((void));
#ifdef HAVE_SECONDARY_RELOADS
@ -571,7 +573,7 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
rtx
get_secondary_mem (x, mode, opnum, type)
rtx x;
rtx x ATTRIBUTE_UNUSED;
enum machine_mode mode;
int opnum;
enum reload_type type;
@ -658,7 +660,7 @@ find_valid_class (m1, n)
{
int class;
int regno;
enum reg_class best_class;
enum reg_class best_class = NO_REGS;
int best_size = 0;
for (class = 1; class < N_REG_CLASSES; class++)
@ -2452,10 +2454,9 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
insn_code_number = INSN_CODE (insn);
this_insn_is_asm = insn_code_number < 0;
bcopy ((char *) recog_data.operand_mode, (char *) operand_mode,
noperands * sizeof (enum machine_mode));
bcopy ((char *) recog_data.constraints, (char *) constraints,
noperands * sizeof (char *));
memcpy (operand_mode, recog_data.operand_mode,
noperands * sizeof (enum machine_mode));
memcpy (constraints, recog_data.constraints, noperands * sizeof (char *));
commutative = -1;
@ -3433,8 +3434,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
pref_or_nothing[commutative] = pref_or_nothing[commutative + 1];
pref_or_nothing[commutative + 1] = t;
bcopy ((char *) recog_data.constraints, (char *) constraints,
noperands * sizeof (char *));
memcpy (constraints, recog_data.constraints,
noperands * sizeof (char *));
goto try_swapped;
}
else

View File

@ -449,6 +449,9 @@ static void move2add_note_store PROTO((rtx, rtx));
#ifdef AUTO_INC_DEC
static void add_auto_inc_notes PROTO((rtx, rtx));
#endif
static rtx gen_mode_int PROTO((enum machine_mode,
HOST_WIDE_INT));
extern void dump_needs PROTO((struct insn_chain *, FILE *));
/* Initialize the reload pass once per compilation. */
@ -4023,8 +4026,8 @@ hard_reg_use_compare (p1p, p2p)
const PTR p1p;
const PTR p2p;
{
struct hard_reg_n_uses *p1 = (struct hard_reg_n_uses *)p1p;
struct hard_reg_n_uses *p2 = (struct hard_reg_n_uses *)p2p;
const struct hard_reg_n_uses *p1 = (const struct hard_reg_n_uses *)p1p;
const struct hard_reg_n_uses *p2 = (const struct hard_reg_n_uses *)p2p;
int bad1 = TEST_HARD_REG_BIT (bad_spill_regs, p1->regno);
int bad2 = TEST_HARD_REG_BIT (bad_spill_regs, p2->regno);
if (bad1 && bad2)
@ -4519,7 +4522,7 @@ reload_reg_class_lower (r1p, r2p)
const PTR r1p;
const PTR r2p;
{
register int r1 = *(short *)r1p, r2 = *(short *)r2p;
register int r1 = *(const short *)r1p, r2 = *(const short *)r2p;
register int t;
/* Consider required reloads before optional ones. */
@ -6014,7 +6017,7 @@ choose_reload_regs (chain)
register rtx equiv
= find_equiv_reg (search_equiv, insn, rld[r].class,
-1, NULL_PTR, 0, reload_mode[r]);
int regno;
int regno = 0;
if (equiv != 0)
{