Commit cdadb1dd by Kaveh R. Ghazi Committed by Kaveh Ghazi

reload.c: PROTO -> PARAMS.

        * reload.c: PROTO -> PARAMS.
        * reload.h: Likewise.
        * reload1.c: Likewise.
        * reorg.c: Likewise.
        * resource.h: Likewise.
        * rtl.c: Likewise.
        * rtl.h: Likewise.
        * rtlanal.c: Likewise.
        * sbitmap.h: Likewise.
        * sdbout.c: Likewise.
        * stack.h: Likewise.
        * stmt.c: Likewise.
        * system.h: Likewise.

From-SVN: r31461
parent 283a159f
2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* reload.c: PROTO -> PARAMS.
* reload.h: Likewise.
* reload1.c: Likewise.
* reorg.c: Likewise.
* resource.h: Likewise.
* rtl.c: Likewise.
* rtl.h: Likewise.
* rtlanal.c: Likewise.
* sbitmap.h: Likewise.
* sdbout.c: Likewise.
* stack.h: Likewise.
* stmt.c: Likewise.
* system.h: Likewise.
2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* machmode.h: PROTO -> PARAMS.
* mbchar.h: Likewise.
* mips-tdump.c: Likewise.
......
......@@ -237,42 +237,42 @@ static int output_reloadnum;
: (type)))
#ifdef HAVE_SECONDARY_RELOADS
static int push_secondary_reload PROTO((int, rtx, int, int, enum reg_class,
static int push_secondary_reload PARAMS ((int, rtx, int, int, enum reg_class,
enum machine_mode, enum reload_type,
enum insn_code *));
#endif
static enum reg_class find_valid_class PROTO((enum machine_mode, int));
static int push_reload PROTO((rtx, rtx, rtx *, rtx *, enum reg_class,
static enum reg_class find_valid_class PARAMS ((enum machine_mode, int));
static int push_reload PARAMS ((rtx, rtx, rtx *, rtx *, enum reg_class,
enum machine_mode, enum machine_mode,
int, int, int, enum reload_type));
static void push_replacement PROTO((rtx *, int, enum machine_mode));
static void combine_reloads PROTO((void));
static int find_reusable_reload PROTO((rtx *, rtx, enum reg_class,
static void push_replacement PARAMS ((rtx *, int, enum machine_mode));
static void combine_reloads PARAMS ((void));
static int find_reusable_reload PARAMS ((rtx *, rtx, enum reg_class,
enum reload_type, int, int));
static rtx find_dummy_reload PROTO((rtx, rtx, rtx *, rtx *,
static rtx find_dummy_reload PARAMS ((rtx, rtx, rtx *, rtx *,
enum machine_mode, enum machine_mode,
enum reg_class, int, int));
static int hard_reg_set_here_p PROTO((int, int, rtx));
static struct decomposition decompose PROTO((rtx));
static int immune_p PROTO((rtx, rtx, struct decomposition));
static int alternative_allows_memconst PROTO((const char *, int));
static rtx find_reloads_toplev PROTO((rtx, int, enum reload_type, int, int, rtx));
static rtx make_memloc PROTO((rtx, int));
static int find_reloads_address PROTO((enum machine_mode, rtx *, rtx, rtx *,
static int hard_reg_set_here_p PARAMS ((int, int, rtx));
static struct decomposition decompose PARAMS ((rtx));
static int immune_p PARAMS ((rtx, rtx, struct decomposition));
static int alternative_allows_memconst PARAMS ((const char *, int));
static rtx find_reloads_toplev PARAMS ((rtx, int, enum reload_type, int, int, rtx));
static rtx make_memloc PARAMS ((rtx, int));
static int find_reloads_address PARAMS ((enum machine_mode, rtx *, rtx, rtx *,
int, enum reload_type, int, rtx));
static rtx subst_reg_equivs PROTO((rtx, rtx));
static rtx subst_indexed_address PROTO((rtx));
static int find_reloads_address_1 PROTO((enum machine_mode, rtx, int, rtx *,
static rtx subst_reg_equivs PARAMS ((rtx, rtx));
static rtx subst_indexed_address PARAMS ((rtx));
static int find_reloads_address_1 PARAMS ((enum machine_mode, rtx, int, rtx *,
int, enum reload_type,int, rtx));
static void find_reloads_address_part PROTO((rtx, rtx *, enum reg_class,
static void find_reloads_address_part PARAMS ((rtx, rtx *, enum reg_class,
enum machine_mode, int,
enum reload_type, int));
static rtx find_reloads_subreg_address PROTO((rtx, int, int, enum reload_type,
static rtx find_reloads_subreg_address PARAMS ((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));
static int find_inc_amount PARAMS ((rtx, rtx));
static int loc_mentioned_in_p PARAMS ((rtx *, rtx));
extern void debug_reload_to_stream PARAMS ((FILE *));
extern void debug_reload PARAMS ((void));
#ifdef HAVE_SECONDARY_RELOADS
......
......@@ -43,7 +43,7 @@ Boston, MA 02111-1307, USA. */
#define MEMORY_MOVE_COST(MODE,CLASS,IN) 4
#endif
#endif
extern int memory_move_secondary_cost PROTO ((enum machine_mode, enum reg_class, int));
extern int memory_move_secondary_cost PARAMS ((enum machine_mode, enum reg_class, int));
/* Maximum number of reloads we can need. */
#define MAX_RELOADS (2 * MAX_RECOG_OPERANDS * (MAX_REGS_PER_ADDRESS + 1))
......@@ -254,9 +254,9 @@ struct insn_chain
extern struct insn_chain *reload_insn_chain;
/* Allocate a new insn_chain structure. */
extern struct insn_chain *new_insn_chain PROTO((void));
extern struct insn_chain *new_insn_chain PARAMS ((void));
extern void compute_use_by_pseudos PROTO((HARD_REG_SET *, regset));
extern void compute_use_by_pseudos PARAMS ((HARD_REG_SET *, regset));
#endif
/* Functions from reload.c: */
......@@ -264,121 +264,121 @@ extern void compute_use_by_pseudos PROTO((HARD_REG_SET *, regset));
/* Return a memory location that will be used to copy X in mode MODE.
If we haven't already made a location for this mode in this insn,
call find_reloads_address on the location being returned. */
extern rtx get_secondary_mem PROTO((rtx, enum machine_mode,
extern rtx get_secondary_mem PARAMS ((rtx, enum machine_mode,
int, enum reload_type));
/* Clear any secondary memory locations we've made. */
extern void clear_secondary_mem PROTO((void));
extern void clear_secondary_mem PARAMS ((void));
/* Transfer all replacements that used to be in reload FROM to be in
reload TO. */
extern void transfer_replacements PROTO((int, int));
extern void transfer_replacements PARAMS ((int, int));
/* IN_RTX is the value loaded by a reload that we now decided to inherit,
or a subpart of it. If we have any replacements registered for IN_RTX,
chancel the reloads that were supposed to load them.
Return non-zero if we chanceled any reloads. */
extern int remove_address_replacements PROTO((rtx in_rtx));
extern int remove_address_replacements PARAMS ((rtx in_rtx));
/* Like rtx_equal_p except that it allows a REG and a SUBREG to match
if they are the same hard reg, and has special hacks for
autoincrement and autodecrement. */
extern int operands_match_p PROTO((rtx, rtx));
extern int operands_match_p PARAMS ((rtx, rtx));
/* Return 1 if altering OP will not modify the value of CLOBBER. */
extern int safe_from_earlyclobber PROTO((rtx, rtx));
extern int safe_from_earlyclobber PARAMS ((rtx, rtx));
/* Search the body of INSN for values that need reloading and record them
with push_reload. REPLACE nonzero means record also where the values occur
so that subst_reloads can be used. */
extern int find_reloads PROTO((rtx, int, int, int, short *));
extern int find_reloads PARAMS ((rtx, int, int, int, short *));
/* Compute the sum of X and Y, making canonicalizations assumed in an
address, namely: sum constant integers, surround the sum of two
constants with a CONST, put the constant as the second operand, and
group the constant on the outermost sum. */
extern rtx form_sum PROTO((rtx, rtx));
extern rtx form_sum PARAMS ((rtx, rtx));
/* Substitute into the current INSN the registers into which we have reloaded
the things that need reloading. */
extern void subst_reloads PROTO((void));
extern void subst_reloads PARAMS ((void));
/* Make a copy of any replacements being done into X and move those copies
to locations in Y, a copy of X. We only look at the highest level of
the RTL. */
extern void copy_replacements PROTO((rtx, rtx));
extern void copy_replacements PARAMS ((rtx, rtx));
/* Change any replacements being done to *X to be done to *Y */
extern void move_replacements PROTO((rtx *x, rtx *y));
extern void move_replacements PARAMS ((rtx *x, rtx *y));
/* If LOC was scheduled to be replaced by something, return the replacement.
Otherwise, return *LOC. */
extern rtx find_replacement PROTO((rtx *));
extern rtx find_replacement PARAMS ((rtx *));
/* Return nonzero if register in range [REGNO, ENDREGNO)
appears either explicitly or implicitly in X
other than being stored into. */
extern int refers_to_regno_for_reload_p PROTO((int, int, rtx, rtx *));
extern int refers_to_regno_for_reload_p PARAMS ((int, int, rtx, rtx *));
/* Nonzero if modifying X will affect IN. */
extern int reg_overlap_mentioned_for_reload_p PROTO((rtx, rtx));
extern int reg_overlap_mentioned_for_reload_p PARAMS ((rtx, rtx));
/* Return nonzero if anything in X contains a MEM. Look also for pseudo
registers. */
extern int refers_to_mem_for_reload_p PROTO((rtx));
extern int refers_to_mem_for_reload_p PARAMS ((rtx));
/* Check the insns before INSN to see if there is a suitable register
containing the same value as GOAL. */
extern rtx find_equiv_reg PROTO((rtx, rtx, enum reg_class, int, short *,
extern rtx find_equiv_reg PARAMS ((rtx, rtx, enum reg_class, int, short *,
int, enum machine_mode));
/* Return 1 if register REGNO is the subject of a clobber in insn INSN. */
extern int regno_clobbered_p PROTO((int, rtx));
extern int regno_clobbered_p PARAMS ((int, rtx));
/* Return 1 if X is an operand of an insn that is being earlyclobbered. */
int earlyclobber_operand_p PROTO((rtx));
int earlyclobber_operand_p PARAMS ((rtx));
/* Functions in reload1.c: */
extern int reloads_conflict PROTO ((int, int));
extern int reloads_conflict PARAMS ((int, int));
int count_occurrences PROTO((rtx, rtx));
int count_occurrences PARAMS ((rtx, rtx));
/* Initialize the reload pass once per compilation. */
extern void init_reload PROTO((void));
extern void init_reload PARAMS ((void));
/* The reload pass itself. */
extern int reload PROTO((rtx, int, FILE *));
extern int reload PARAMS ((rtx, int, FILE *));
/* Mark the slots in regs_ever_live for the hard regs
used by pseudo-reg number REGNO. */
extern void mark_home_live PROTO((int));
extern void mark_home_live PARAMS ((int));
/* Scan X and replace any eliminable registers (such as fp) with a
replacement (such as sp), plus an offset. */
extern rtx eliminate_regs PROTO((rtx, enum machine_mode, rtx));
extern rtx eliminate_regs PARAMS ((rtx, enum machine_mode, rtx));
/* Emit code to perform a reload from IN (which may be a reload register) to
OUT (which may also be a reload register). IN or OUT is from operand
OPNUM with reload type TYPE. */
extern rtx gen_reload PROTO((rtx, rtx, int, enum reload_type));
extern rtx gen_reload PARAMS ((rtx, rtx, int, enum reload_type));
/* Deallocate the reload register used by reload number R. */
extern void deallocate_reload_reg PROTO((int r));
extern void deallocate_reload_reg PARAMS ((int r));
/* Functions in caller-save.c: */
/* Initialize for caller-save. */
extern void init_caller_save PROTO((void));
extern void init_caller_save PARAMS ((void));
/* Initialize save areas by showing that we haven't allocated any yet. */
extern void init_save_areas PROTO((void));
extern void init_save_areas PARAMS ((void));
/* Allocate save areas for any hard registers that might need saving. */
extern void setup_save_areas PROTO((void));
extern void setup_save_areas PARAMS ((void));
/* Find the places where hard regs are live across calls and save them. */
extern void save_call_clobbered_regs PROTO((void));
extern void save_call_clobbered_regs PARAMS ((void));
/* Replace (subreg (reg)) with the appropriate (reg) for any operands. */
extern void cleanup_subreg_operands PROTO ((rtx));
extern void cleanup_subreg_operands PARAMS ((rtx));
......@@ -366,92 +366,92 @@ static int (*offsets_at)[NUM_ELIMINABLE_REGS];
static int num_labels;
static void maybe_fix_stack_asms PROTO((void));
static void copy_reloads PROTO((struct insn_chain *));
static void calculate_needs_all_insns PROTO((int));
static int find_reg PROTO((struct insn_chain *, int,
static void maybe_fix_stack_asms PARAMS ((void));
static void copy_reloads PARAMS ((struct insn_chain *));
static void calculate_needs_all_insns PARAMS ((int));
static int find_reg PARAMS ((struct insn_chain *, int,
FILE *));
static void find_reload_regs PROTO((struct insn_chain *, FILE *));
static void select_reload_regs PROTO((FILE *));
static void delete_caller_save_insns PROTO((void));
static void spill_failure PROTO((rtx, enum reg_class));
static void count_spilled_pseudo PROTO((int, int, int));
static void delete_dead_insn PROTO((rtx));
static void alter_reg PROTO((int, int));
static void set_label_offsets PROTO((rtx, rtx, int));
static void check_eliminable_occurrences PROTO((rtx));
static void elimination_effects PROTO((rtx, enum machine_mode));
static int eliminate_regs_in_insn PROTO((rtx, int));
static void update_eliminable_offsets PROTO((void));
static void mark_not_eliminable PROTO((rtx, rtx, void *));
static void set_initial_elim_offsets PROTO((void));
static void verify_initial_elim_offsets PROTO((void));
static void set_initial_label_offsets PROTO((void));
static void set_offsets_for_label PROTO((rtx));
static void init_elim_table PROTO((void));
static void update_eliminables PROTO((HARD_REG_SET *));
static void spill_hard_reg PROTO((int, FILE *, int));
static int finish_spills PROTO((int, FILE *));
static void ior_hard_reg_set PROTO((HARD_REG_SET *, HARD_REG_SET *));
static void scan_paradoxical_subregs PROTO((rtx));
static void count_pseudo PROTO((int));
static void order_regs_for_reload PROTO((struct insn_chain *));
static void reload_as_needed PROTO((int));
static void forget_old_reloads_1 PROTO((rtx, rtx, void *));
static int reload_reg_class_lower PROTO((const PTR, const PTR));
static void mark_reload_reg_in_use PROTO((int, int, enum reload_type,
static void find_reload_regs PARAMS ((struct insn_chain *, FILE *));
static void select_reload_regs PARAMS ((FILE *));
static void delete_caller_save_insns PARAMS ((void));
static void spill_failure PARAMS ((rtx, enum reg_class));
static void count_spilled_pseudo PARAMS ((int, int, int));
static void delete_dead_insn PARAMS ((rtx));
static void alter_reg PARAMS ((int, int));
static void set_label_offsets PARAMS ((rtx, rtx, int));
static void check_eliminable_occurrences PARAMS ((rtx));
static void elimination_effects PARAMS ((rtx, enum machine_mode));
static int eliminate_regs_in_insn PARAMS ((rtx, int));
static void update_eliminable_offsets PARAMS ((void));
static void mark_not_eliminable PARAMS ((rtx, rtx, void *));
static void set_initial_elim_offsets PARAMS ((void));
static void verify_initial_elim_offsets PARAMS ((void));
static void set_initial_label_offsets PARAMS ((void));
static void set_offsets_for_label PARAMS ((rtx));
static void init_elim_table PARAMS ((void));
static void update_eliminables PARAMS ((HARD_REG_SET *));
static void spill_hard_reg PARAMS ((int, FILE *, int));
static int finish_spills PARAMS ((int, FILE *));
static void ior_hard_reg_set PARAMS ((HARD_REG_SET *, HARD_REG_SET *));
static void scan_paradoxical_subregs PARAMS ((rtx));
static void count_pseudo PARAMS ((int));
static void order_regs_for_reload PARAMS ((struct insn_chain *));
static void reload_as_needed PARAMS ((int));
static void forget_old_reloads_1 PARAMS ((rtx, rtx, void *));
static int reload_reg_class_lower PARAMS ((const PTR, const PTR));
static void mark_reload_reg_in_use PARAMS ((int, int, enum reload_type,
enum machine_mode));
static void clear_reload_reg_in_use PROTO((int, int, enum reload_type,
static void clear_reload_reg_in_use PARAMS ((int, int, enum reload_type,
enum machine_mode));
static int reload_reg_free_p PROTO((int, int, enum reload_type));
static int reload_reg_free_for_value_p PROTO((int, int, enum reload_type,
static int reload_reg_free_p PARAMS ((int, int, enum reload_type));
static int reload_reg_free_for_value_p PARAMS ((int, int, enum reload_type,
rtx, rtx, int, int));
static int reload_reg_reaches_end_p PROTO((int, int, enum reload_type));
static int allocate_reload_reg PROTO((struct insn_chain *, int, int));
static void failed_reload PROTO((rtx, int));
static int set_reload_reg PROTO((int, int));
static void choose_reload_regs_init PROTO((struct insn_chain *, rtx *));
static void choose_reload_regs PROTO((struct insn_chain *));
static void merge_assigned_reloads PROTO((rtx));
static void emit_input_reload_insns PROTO((struct insn_chain *,
static int reload_reg_reaches_end_p PARAMS ((int, int, enum reload_type));
static int allocate_reload_reg PARAMS ((struct insn_chain *, int, int));
static void failed_reload PARAMS ((rtx, int));
static int set_reload_reg PARAMS ((int, int));
static void choose_reload_regs_init PARAMS ((struct insn_chain *, rtx *));
static void choose_reload_regs PARAMS ((struct insn_chain *));
static void merge_assigned_reloads PARAMS ((rtx));
static void emit_input_reload_insns PARAMS ((struct insn_chain *,
struct reload *, rtx, int));
static void emit_output_reload_insns PROTO((struct insn_chain *,
static void emit_output_reload_insns PARAMS ((struct insn_chain *,
struct reload *, int));
static void do_input_reload PROTO((struct insn_chain *,
static void do_input_reload PARAMS ((struct insn_chain *,
struct reload *, int));
static void do_output_reload PROTO((struct insn_chain *,
static void do_output_reload PARAMS ((struct insn_chain *,
struct reload *, int));
static void emit_reload_insns PROTO((struct insn_chain *));
static void delete_output_reload PROTO((rtx, int, int));
static void delete_address_reloads PROTO((rtx, rtx));
static void delete_address_reloads_1 PROTO((rtx, rtx, rtx));
static rtx inc_for_reload PROTO((rtx, rtx, rtx, int));
static int constraint_accepts_reg_p PROTO((const char *, rtx));
static void reload_cse_regs_1 PROTO((rtx));
static void reload_cse_invalidate_regno PROTO((int, enum machine_mode, int));
static int reload_cse_mem_conflict_p PROTO((rtx, rtx));
static void reload_cse_invalidate_mem PROTO((rtx));
static void reload_cse_invalidate_rtx PROTO((rtx, rtx, void *));
static int reload_cse_regno_equal_p PROTO((int, rtx, enum machine_mode));
static int reload_cse_noop_set_p PROTO((rtx, rtx));
static int reload_cse_simplify_set PROTO((rtx, rtx));
static int reload_cse_simplify_operands PROTO((rtx));
static void reload_cse_check_clobber PROTO((rtx, rtx, void *));
static void reload_cse_record_set PROTO((rtx, rtx));
static void reload_combine PROTO((void));
static void reload_combine_note_use PROTO((rtx *, rtx));
static void reload_combine_note_store PROTO((rtx, rtx, void *));
static void reload_cse_move2add PROTO((rtx));
static void move2add_note_store PROTO((rtx, rtx, void *));
static void emit_reload_insns PARAMS ((struct insn_chain *));
static void delete_output_reload PARAMS ((rtx, int, int));
static void delete_address_reloads PARAMS ((rtx, rtx));
static void delete_address_reloads_1 PARAMS ((rtx, rtx, rtx));
static rtx inc_for_reload PARAMS ((rtx, rtx, rtx, int));
static int constraint_accepts_reg_p PARAMS ((const char *, rtx));
static void reload_cse_regs_1 PARAMS ((rtx));
static void reload_cse_invalidate_regno PARAMS ((int, enum machine_mode, int));
static int reload_cse_mem_conflict_p PARAMS ((rtx, rtx));
static void reload_cse_invalidate_mem PARAMS ((rtx));
static void reload_cse_invalidate_rtx PARAMS ((rtx, rtx, void *));
static int reload_cse_regno_equal_p PARAMS ((int, rtx, enum machine_mode));
static int reload_cse_noop_set_p PARAMS ((rtx, rtx));
static int reload_cse_simplify_set PARAMS ((rtx, rtx));
static int reload_cse_simplify_operands PARAMS ((rtx));
static void reload_cse_check_clobber PARAMS ((rtx, rtx, void *));
static void reload_cse_record_set PARAMS ((rtx, rtx));
static void reload_combine PARAMS ((void));
static void reload_combine_note_use PARAMS ((rtx *, rtx));
static void reload_combine_note_store PARAMS ((rtx, rtx, void *));
static void reload_cse_move2add PARAMS ((rtx));
static void move2add_note_store PARAMS ((rtx, rtx, void *));
#ifdef AUTO_INC_DEC
static void add_auto_inc_notes PROTO((rtx, rtx));
static void add_auto_inc_notes PARAMS ((rtx, rtx));
#endif
static rtx gen_mode_int PROTO((enum machine_mode,
static rtx gen_mode_int PARAMS ((enum machine_mode,
HOST_WIDE_INT));
static void failed_reload PROTO((rtx, int));
static int set_reload_reg PROTO((int, int));
extern void dump_needs PROTO((struct insn_chain *, FILE *));
static void failed_reload PARAMS ((rtx, int));
static int set_reload_reg PARAMS ((int, int));
extern void dump_needs PARAMS ((struct insn_chain *, FILE *));
/* Initialize the reload pass once per compilation. */
......
......@@ -177,53 +177,53 @@ static int *uid_to_ruid;
/* Highest valid index in `uid_to_ruid'. */
static int max_uid;
static int stop_search_p PROTO((rtx, int));
static int resource_conflicts_p PROTO((struct resources *,
static int stop_search_p PARAMS ((rtx, int));
static int resource_conflicts_p PARAMS ((struct resources *,
struct resources *));
static int insn_references_resource_p PROTO((rtx, struct resources *, int));
static int insn_sets_resource_p PROTO((rtx, struct resources *, int));
static rtx find_end_label PROTO((void));
static rtx emit_delay_sequence PROTO((rtx, rtx, int));
static rtx add_to_delay_list PROTO((rtx, rtx));
static rtx delete_from_delay_slot PROTO((rtx));
static void delete_scheduled_jump PROTO((rtx));
static void note_delay_statistics PROTO((int, int));
static int insn_references_resource_p PARAMS ((rtx, struct resources *, int));
static int insn_sets_resource_p PARAMS ((rtx, struct resources *, int));
static rtx find_end_label PARAMS ((void));
static rtx emit_delay_sequence PARAMS ((rtx, rtx, int));
static rtx add_to_delay_list PARAMS ((rtx, rtx));
static rtx delete_from_delay_slot PARAMS ((rtx));
static void delete_scheduled_jump PARAMS ((rtx));
static void note_delay_statistics PARAMS ((int, int));
#if defined(ANNUL_IFFALSE_SLOTS) || defined(ANNUL_IFTRUE_SLOTS)
static rtx optimize_skip PROTO((rtx));
static rtx optimize_skip PARAMS ((rtx));
#endif
static int get_jump_flags PROTO((rtx, rtx));
static int rare_destination PROTO((rtx));
static int mostly_true_jump PROTO((rtx, rtx));
static rtx get_branch_condition PROTO((rtx, rtx));
static int condition_dominates_p PROTO((rtx, rtx));
static int redirect_with_delay_slots_safe_p PROTO ((rtx, rtx, rtx));
static int redirect_with_delay_list_safe_p PROTO ((rtx, rtx, rtx));
static int check_annul_list_true_false PROTO ((int, rtx));
static rtx steal_delay_list_from_target PROTO((rtx, rtx, rtx, rtx,
static int get_jump_flags PARAMS ((rtx, rtx));
static int rare_destination PARAMS ((rtx));
static int mostly_true_jump PARAMS ((rtx, rtx));
static rtx get_branch_condition PARAMS ((rtx, rtx));
static int condition_dominates_p PARAMS ((rtx, rtx));
static int redirect_with_delay_slots_safe_p PARAMS ((rtx, rtx, rtx));
static int redirect_with_delay_list_safe_p PARAMS ((rtx, rtx, rtx));
static int check_annul_list_true_false PARAMS ((int, rtx));
static rtx steal_delay_list_from_target PARAMS ((rtx, rtx, rtx, rtx,
struct resources *,
struct resources *,
struct resources *,
int, int *, int *, rtx *));
static rtx steal_delay_list_from_fallthrough PROTO((rtx, rtx, rtx, rtx,
static rtx steal_delay_list_from_fallthrough PARAMS ((rtx, rtx, rtx, rtx,
struct resources *,
struct resources *,
struct resources *,
int, int *, int *));
static void try_merge_delay_insns PROTO((rtx, rtx));
static rtx redundant_insn PROTO((rtx, rtx, rtx));
static int own_thread_p PROTO((rtx, rtx, int));
static void update_block PROTO((rtx, rtx));
static int reorg_redirect_jump PROTO((rtx, rtx));
static void update_reg_dead_notes PROTO((rtx, rtx));
static void fix_reg_dead_note PROTO((rtx, rtx));
static void update_reg_unused_notes PROTO((rtx, rtx));
static void fill_simple_delay_slots PROTO((int));
static rtx fill_slots_from_thread PROTO((rtx, rtx, rtx, rtx, int, int,
static void try_merge_delay_insns PARAMS ((rtx, rtx));
static rtx redundant_insn PARAMS ((rtx, rtx, rtx));
static int own_thread_p PARAMS ((rtx, rtx, int));
static void update_block PARAMS ((rtx, rtx));
static int reorg_redirect_jump PARAMS ((rtx, rtx));
static void update_reg_dead_notes PARAMS ((rtx, rtx));
static void fix_reg_dead_note PARAMS ((rtx, rtx));
static void update_reg_unused_notes PARAMS ((rtx, rtx));
static void fill_simple_delay_slots PARAMS ((int));
static rtx fill_slots_from_thread PARAMS ((rtx, rtx, rtx, rtx, int, int,
int, int, int *, rtx));
static void fill_eager_delay_slots PROTO((void));
static void relax_delay_slots PROTO((rtx));
static void fill_eager_delay_slots PARAMS ((void));
static void relax_delay_slots PARAMS ((rtx));
#ifdef HAVE_return
static void make_return_insns PROTO((rtx));
static void make_return_insns PARAMS ((rtx));
#endif
/* Return TRUE if this insn should stop the search for insn to fill delay
......
......@@ -33,15 +33,15 @@ struct resources
HARD_REG_SET regs; /* Which registers are set or needed. */
};
extern void mark_target_live_regs PROTO((rtx, rtx, struct resources *));
extern void mark_set_resources PROTO((rtx, struct resources *, int,
extern void mark_target_live_regs PARAMS ((rtx, rtx, struct resources *));
extern void mark_set_resources PARAMS ((rtx, struct resources *, int,
int));
extern void mark_referenced_resources PROTO((rtx, struct resources *, int));
extern void clear_hashed_info_for_insn PROTO((rtx));
extern void incr_ticks_for_insn PROTO((rtx));
extern void mark_end_of_function_resources PROTO ((rtx, int));
extern void init_resource_info PROTO((rtx));
extern void free_resource_info PROTO((void));
extern rtx find_free_register PROTO((rtx, rtx, const char *, int,
extern void mark_referenced_resources PARAMS ((rtx, struct resources *, int));
extern void clear_hashed_info_for_insn PARAMS ((rtx));
extern void incr_ticks_for_insn PARAMS ((rtx));
extern void mark_end_of_function_resources PARAMS ((rtx, int));
extern void init_resource_info PARAMS ((rtx));
extern void free_resource_info PARAMS ((void));
extern rtx find_free_register PARAMS ((rtx, rtx, const char *, int,
HARD_REG_SET *));
extern int reg_dead_p PROTO((rtx, rtx));
extern int reg_dead_p PARAMS ((rtx, rtx));
......@@ -257,11 +257,11 @@ const char * const reg_note_name[] = { "", "REG_DEAD", "REG_INC", "REG_EQUIV", "
"REG_FRAME_RELATED_EXPR", "REG_EH_REGION",
"REG_EH_RETHROW", "REG_SAVE_NOTE" };
static void fatal_with_file_and_line PVPROTO((FILE *, const char *, ...))
static void fatal_with_file_and_line PARAMS ((FILE *, const char *, ...))
ATTRIBUTE_NORETURN;
static void fatal_expected_char PROTO((FILE *, int, int)) ATTRIBUTE_NORETURN;
static void read_name PROTO((char *, FILE *));
static const char *trim_filename PROTO((const char *));
static void fatal_expected_char PARAMS ((FILE *, int, int)) ATTRIBUTE_NORETURN;
static void read_name PARAMS ((char *, FILE *));
static const char *trim_filename PARAMS ((const char *));
/* Allocate an rtx vector of N elements.
Store the length, and initialize all elements to zero. */
......@@ -697,7 +697,7 @@ int read_rtx_lineno = 1;
const char *read_rtx_filename = "<unknown>";
static void
fatal_with_file_and_line VPROTO((FILE *infile, const char *msg, ...))
fatal_with_file_and_line VPARAMS ((FILE *infile, const char *msg, ...))
{
#ifndef ANSI_PROTOTYPES
FILE *infile;
......
......@@ -23,13 +23,13 @@ Boston, MA 02111-1307, USA. */
#include "system.h"
#include "rtl.h"
static int rtx_addr_can_trap_p PROTO((rtx));
static void reg_set_p_1 PROTO((rtx, rtx, void *));
static void reg_set_last_1 PROTO((rtx, rtx, void *));
static int rtx_addr_can_trap_p PARAMS ((rtx));
static void reg_set_p_1 PARAMS ((rtx, rtx, void *));
static void reg_set_last_1 PARAMS ((rtx, rtx, void *));
/* Forward declarations */
static int jmp_uses_reg_or_mem PROTO((rtx));
static int jmp_uses_reg_or_mem PARAMS ((rtx));
/* Bit flags that specify the machine subtype we are compiling for.
Bits are tested using macros TARGET_... defined in the tm.h file
......@@ -1081,7 +1081,7 @@ reg_set_last (x, insn)
void
note_stores (x, fun, data)
register rtx x;
void (*fun) PROTO ((rtx, rtx, void *));
void (*fun) PARAMS ((rtx, rtx, void *));
void *data;
{
if ((GET_CODE (x) == SET || GET_CODE (x) == CLOBBER))
......
......@@ -92,35 +92,35 @@ do { \
#define sbitmap_free(map) free(map)
#define sbitmap_vector_free(vec) free(vec)
extern void dump_sbitmap PROTO ((FILE *, sbitmap));
extern void dump_sbitmap_vector PROTO ((FILE *, const char *, const char *,
extern void dump_sbitmap PARAMS ((FILE *, sbitmap));
extern void dump_sbitmap_vector PARAMS ((FILE *, const char *, const char *,
sbitmap *, int));
extern sbitmap sbitmap_alloc PROTO ((int));
extern sbitmap *sbitmap_vector_alloc PROTO ((int, int));
extern sbitmap sbitmap_alloc PARAMS ((int));
extern sbitmap *sbitmap_vector_alloc PARAMS ((int, int));
extern void sbitmap_copy PROTO ((sbitmap, sbitmap));
extern void sbitmap_zero PROTO ((sbitmap));
extern void sbitmap_ones PROTO ((sbitmap));
extern void sbitmap_vector_zero PROTO ((sbitmap *, int));
extern void sbitmap_vector_ones PROTO ((sbitmap *, int));
extern void sbitmap_copy PARAMS ((sbitmap, sbitmap));
extern void sbitmap_zero PARAMS ((sbitmap));
extern void sbitmap_ones PARAMS ((sbitmap));
extern void sbitmap_vector_zero PARAMS ((sbitmap *, int));
extern void sbitmap_vector_ones PARAMS ((sbitmap *, int));
extern int sbitmap_union_of_diff PROTO ((sbitmap, sbitmap, sbitmap, sbitmap));
extern void sbitmap_difference PROTO ((sbitmap, sbitmap, sbitmap));
extern void sbitmap_not PROTO ((sbitmap, sbitmap));
extern int sbitmap_a_or_b_and_c PROTO ((sbitmap, sbitmap, sbitmap, sbitmap));
extern int sbitmap_a_and_b_or_c PROTO ((sbitmap, sbitmap, sbitmap, sbitmap));
extern int sbitmap_a_and_b PROTO ((sbitmap, sbitmap, sbitmap));
extern int sbitmap_a_or_b PROTO ((sbitmap, sbitmap, sbitmap));
extern int sbitmap_a_subset_b_p PROTO ((sbitmap, sbitmap));
extern int sbitmap_union_of_diff PARAMS ((sbitmap, sbitmap, sbitmap, sbitmap));
extern void sbitmap_difference PARAMS ((sbitmap, sbitmap, sbitmap));
extern void sbitmap_not PARAMS ((sbitmap, sbitmap));
extern int sbitmap_a_or_b_and_c PARAMS ((sbitmap, sbitmap, sbitmap, sbitmap));
extern int sbitmap_a_and_b_or_c PARAMS ((sbitmap, sbitmap, sbitmap, sbitmap));
extern int sbitmap_a_and_b PARAMS ((sbitmap, sbitmap, sbitmap));
extern int sbitmap_a_or_b PARAMS ((sbitmap, sbitmap, sbitmap));
extern int sbitmap_a_subset_b_p PARAMS ((sbitmap, sbitmap));
struct int_list;
extern void sbitmap_intersect_of_predsucc PROTO ((sbitmap, sbitmap *,
extern void sbitmap_intersect_of_predsucc PARAMS ((sbitmap, sbitmap *,
int, struct int_list **));
#define sbitmap_intersect_of_predecessors sbitmap_intersect_of_predsucc
#define sbitmap_intersect_of_successors sbitmap_intersect_of_predsucc
extern void sbitmap_union_of_predsucc PROTO ((sbitmap, sbitmap *, int,
extern void sbitmap_union_of_predsucc PARAMS ((sbitmap, sbitmap *, int,
struct int_list **));
#define sbitmap_union_of_predecessors sbitmap_union_of_predsucc
#define sbitmap_union_of_successors sbitmap_union_of_predsucc
......@@ -128,9 +128,9 @@ extern void sbitmap_union_of_predsucc PROTO ((sbitmap, sbitmap *, int,
/* Intersection and Union of preds/succs using the new flow graph
structure instead of the pred/succ arrays. */
extern void sbitmap_intersection_of_succs PROTO ((sbitmap, sbitmap *, int));
extern void sbitmap_intersection_of_preds PROTO ((sbitmap, sbitmap *, int));
extern void sbitmap_union_of_succs PROTO ((sbitmap, sbitmap *, int));
extern void sbitmap_union_of_preds PROTO ((sbitmap, sbitmap *, int));
extern void sbitmap_intersection_of_succs PARAMS ((sbitmap, sbitmap *, int));
extern void sbitmap_intersection_of_preds PARAMS ((sbitmap, sbitmap *, int));
extern void sbitmap_union_of_succs PARAMS ((sbitmap, sbitmap *, int));
extern void sbitmap_union_of_preds PARAMS ((sbitmap, sbitmap *, int));
#endif /* _SBITMAP_H */
......@@ -105,22 +105,22 @@ extern tree current_function_decl;
#include "sdbout.h"
static char *gen_fake_label PROTO((void));
static int plain_type PROTO((tree));
static int template_name_p PROTO((tree));
static void sdbout_record_type_name PROTO((tree));
static int plain_type_1 PROTO((tree, int));
static void sdbout_block PROTO((tree));
static void sdbout_syms PROTO((tree));
static char *gen_fake_label PARAMS ((void));
static int plain_type PARAMS ((tree));
static int template_name_p PARAMS ((tree));
static void sdbout_record_type_name PARAMS ((tree));
static int plain_type_1 PARAMS ((tree, int));
static void sdbout_block PARAMS ((tree));
static void sdbout_syms PARAMS ((tree));
#ifdef SDB_ALLOW_FORWARD_REFERENCES
static void sdbout_queue_anonymous_type PROTO((tree));
static void sdbout_dequeue_anonymous_types PROTO((void));
static void sdbout_queue_anonymous_type PARAMS ((tree));
static void sdbout_dequeue_anonymous_types PARAMS ((void));
#endif
static void sdbout_type PROTO((tree));
static void sdbout_field_types PROTO((tree));
static void sdbout_one_type PROTO((tree));
static void sdbout_parms PROTO((tree));
static void sdbout_reg_parms PROTO((tree));
static void sdbout_type PARAMS ((tree));
static void sdbout_field_types PARAMS ((tree));
static void sdbout_one_type PARAMS ((tree));
static void sdbout_parms PARAMS ((tree));
static void sdbout_reg_parms PARAMS ((tree));
/* Define the default sizes for various types. */
......
......@@ -38,5 +38,5 @@ struct stack_level
int limit;
};
struct stack_level *push_stack_level PROTO((struct obstack *, char *, int));
struct stack_level *pop_stack_level PROTO((struct stack_level *));
struct stack_level *push_stack_level PARAMS ((struct obstack *, char *, int));
struct stack_level *pop_stack_level PARAMS ((struct stack_level *));
......@@ -400,36 +400,36 @@ static int using_eh_for_cleanups_p = 0;
static char *digit_strings[10];
static int n_occurrences PROTO((int, const char *));
static void expand_goto_internal PROTO((tree, rtx, rtx));
static int expand_fixup PROTO((tree, rtx, rtx));
static rtx expand_nl_handler_label PROTO((rtx, rtx));
static void expand_nl_goto_receiver PROTO((void));
static void expand_nl_goto_receivers PROTO((struct nesting *));
static void fixup_gotos PROTO((struct nesting *, rtx, tree,
static int n_occurrences PARAMS ((int, const char *));
static void expand_goto_internal PARAMS ((tree, rtx, rtx));
static int expand_fixup PARAMS ((tree, rtx, rtx));
static rtx expand_nl_handler_label PARAMS ((rtx, rtx));
static void expand_nl_goto_receiver PARAMS ((void));
static void expand_nl_goto_receivers PARAMS ((struct nesting *));
static void fixup_gotos PARAMS ((struct nesting *, rtx, tree,
rtx, int));
static void expand_null_return_1 PROTO((rtx, int));
static void expand_value_return PROTO((rtx));
static int tail_recursion_args PROTO((tree, tree));
static void expand_cleanups PROTO((tree, tree, int, int));
static void check_seenlabel PROTO((void));
static void do_jump_if_equal PROTO((rtx, rtx, rtx, int));
static int estimate_case_costs PROTO((case_node_ptr));
static void group_case_nodes PROTO((case_node_ptr));
static void balance_case_nodes PROTO((case_node_ptr *,
static void expand_null_return_1 PARAMS ((rtx, int));
static void expand_value_return PARAMS ((rtx));
static int tail_recursion_args PARAMS ((tree, tree));
static void expand_cleanups PARAMS ((tree, tree, int, int));
static void check_seenlabel PARAMS ((void));
static void do_jump_if_equal PARAMS ((rtx, rtx, rtx, int));
static int estimate_case_costs PARAMS ((case_node_ptr));
static void group_case_nodes PARAMS ((case_node_ptr));
static void balance_case_nodes PARAMS ((case_node_ptr *,
case_node_ptr));
static int node_has_low_bound PROTO((case_node_ptr, tree));
static int node_has_high_bound PROTO((case_node_ptr, tree));
static int node_is_bounded PROTO((case_node_ptr, tree));
static void emit_jump_if_reachable PROTO((rtx));
static void emit_case_nodes PROTO((rtx, case_node_ptr, rtx, tree));
static int add_case_node PROTO((tree, tree, tree, tree *));
static struct case_node *case_tree2list PROTO((case_node *, case_node *));
static void mark_cond_nesting PROTO((struct nesting *));
static void mark_loop_nesting PROTO((struct nesting *));
static void mark_block_nesting PROTO((struct nesting *));
static void mark_case_nesting PROTO((struct nesting *));
static void mark_goto_fixup PROTO((struct goto_fixup *));
static int node_has_low_bound PARAMS ((case_node_ptr, tree));
static int node_has_high_bound PARAMS ((case_node_ptr, tree));
static int node_is_bounded PARAMS ((case_node_ptr, tree));
static void emit_jump_if_reachable PARAMS ((rtx));
static void emit_case_nodes PARAMS ((rtx, case_node_ptr, rtx, tree));
static int add_case_node PARAMS ((tree, tree, tree, tree *));
static struct case_node *case_tree2list PARAMS ((case_node *, case_node *));
static void mark_cond_nesting PARAMS ((struct nesting *));
static void mark_loop_nesting PARAMS ((struct nesting *));
static void mark_block_nesting PARAMS ((struct nesting *));
static void mark_case_nesting PARAMS ((struct nesting *));
static void mark_goto_fixup PARAMS ((struct goto_fixup *));
void
......@@ -4547,7 +4547,7 @@ check_seenlabel ()
int
pushcase (value, converter, label, duplicate)
register tree value;
tree (*converter) PROTO((tree, tree));
tree (*converter) PARAMS ((tree, tree));
register tree label;
tree *duplicate;
{
......@@ -4611,7 +4611,7 @@ pushcase (value, converter, label, duplicate)
int
pushcase_range (value1, value2, converter, label, duplicate)
register tree value1, value2;
tree (*converter) PROTO((tree, tree));
tree (*converter) PARAMS ((tree, tree));
register tree label;
tree *duplicate;
{
......
......@@ -58,7 +58,7 @@ Boston, MA 02111-1307, USA. */
# undef fputs
# define fputs(String, Stream) fputs_unlocked (String, Stream)
# ifdef NEED_DECLARATION_FPUTS_UNLOCKED
extern int fputs_unlocked PROTO ((const char *, FILE *));
extern int fputs_unlocked PARAMS ((const char *, FILE *));
# endif
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment