final.c: Convert prototypes to ISO C90.

* final.c: Convert prototypes to ISO C90.
	* flow.c: Likewise.
	* flags.h: Likewise.

From-SVN: r68760
This commit is contained in:
Andreas Jaeger 2003-07-01 07:00:18 +02:00
parent 4c20b2e76b
commit 6cf9ac2858
4 changed files with 206 additions and 362 deletions

View File

@ -1,3 +1,11 @@
2003-07-01 Andreas Jaeger <aj@suse.de>
* final.c: Convert prototypes to ISO C90.
* flow.c: Likewise.
* flags.h: Likewise.
* gcov-io.c: Likewise.
* gcov-io.h: Likewise.
2003-06-30 Bruno Haible <bruno@clisp.org>
PR middle-end/6578
@ -45,14 +53,14 @@
* config/rs6000/spe.h (__ev_set_spefscr_frmc): Set the flag.
2003-06-30 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/lib1funcs.asm: Use "xtensa-config.h" from
top-level include directory.
* config/xtensa/lib2funcs.S: Likewise.
* config/xtensa/xtensa.h: Likewise.
* config/xtensa/xtensa-config.h: Remove.
* doc/install.texi: Update location of "xtensa-config.h" header.
2003-06-30 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_extra_constraint): New function.
@ -82,18 +90,18 @@
"*tstsi", "*tstsi_cconly", "*tsthiCCT", "*tsthiCCT_cconly",
"*tsthi", "*tsthi_cconly", "*tstqiCCT", "*tstqiCCT_cconly",
"*tstqi", "*tstqi_cconly", "*cmpsi_ccs_sign", "*cmpsi_ccs",
"*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu", "*cli",
"*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu", "*cli",
"movti", "*movdi_64", "*movdi_31", "*movsi", "movhi", "movqi_64",
"movqi", "*movstrictqi", "*movstricthi", "movstrictsi",
"*movdf_64", "*movdf_31", "*movsf",
"*movdf_64", "*movdf_31", "*movsf",
"*load_multiple_si", "*store_multiple_di",
"*sethighqisi", "*sethighhisi", "*sethighqidi_31", "*extendhisi2",
"*la_64", "*la_31", "*la_31_and", "force_la_31",
"*sethighqisi", "*sethighhisi", "*sethighqidi_31", "*extendhisi2",
"*la_64", "*la_31", "*la_31_and", "force_la_31",
"*addsi3_carry1_cc", *addsi3_carry1_cconly",
"*addsi3_carry2_cc", *addsi3_carry2_cconly",
"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
"*addsi3_sign", "*addsi3_sub", "addsi3",
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
"*addsi3_sign", "*addsi3_sub", "addsi3",
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
"*subsi3_cconly", "*subsi3_sign", "*subsi3_sub", "subsi3",
"mulsi3"
"*andsi3_cc", "*andsi3_cconly", "andsi3",
@ -106,7 +114,7 @@
("*cmpdf_ccs", "*cmpdf_ccs_ibm", "*cmpsf_ccs", "*cmpsf_ccs_ibm",
"*load_multiple_di", "*store_multiple_di",
"*sethighqidi_64", "*zero_extendhisi2_31",
"*sethighqidi_64", "*zero_extendhisi2_31",
"truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
"adddf3", "*adddf3", "*adddf3_ibm",
"addsf3", "*addsf3", "*addsf3_ibm",
@ -117,11 +125,11 @@
"mulsf3", "*mulsf3", "*mulsf3_ibm",
"divdf3", "*divdf3", "*divdf3_ibm",
"divsf3", "div*sf3", "*divsf3_ibm",
"sqrtdf2", "sqrtsf2",
"sqrtdf2", "sqrtsf2",
"*cjump_long", "*icjump_long", "indirect_jump", "casesi_jump",
"*doloop_si_long", "*doloop_di_long", "bas_64", "bas_31",
"bas_r_64", "bas_r_31", "bas_tls_31", "bas_tls_64"): Adapt memory
and address constraints for instructions that do not accept long
"bas_r_64", "bas_r_31", "bas_tls_31", "bas_tls_64"): Adapt memory
and address constraints for instructions that do not accept long
displacements.
2003-06-30 Hartmut Penner <hpenner@de.ibm.com>
@ -180,14 +188,14 @@ Mon Jun 30 23:47:33 CEST 2003 Jan Hubicka <jh@suse.cz>
architecture to assembler.
(LINK_SPEC): Merge 31-bit and 64-bit variants.
(LINK_ARCH31_SPEC, LINK_ARCH64_SPEC, EXTRA_SPECS): Remove.
* config/s390/s390.c (override_options): New default rules for
* config/s390/s390.c (override_options): New default rules for
architecture mode and cpu architecture selection.
* doc/invoke.texi (-mesa, -mzarch, -march, -mtune): Document
new default rules.
* config/s390/s390.h (enum processor_type): Add PROCESSOR_2084_Z990.
* config/s390/s390.md (attr "cpu"): Add "z990" processor type.
* config/s390/s390.c (override_options): Add "z990" to
* config/s390/s390.c (override_options): Add "z990" to
processor_alias_table.
* doc/invoke.texi (-march): Document "z990" processor type.
@ -195,7 +203,7 @@ Mon Jun 30 23:47:33 CEST 2003 Jan Hubicka <jh@suse.cz>
* config/s390/s390.h (s390_tune_flags, s390_arch_flags): Declare.
(enum processor_flags, TARGET_CPU_IEEE_FLOAT, TARGET_CPU_ZARCH,
TARGET_CPU_LONG_DISPLACEMENT, TARGET_LONG_DISPLACEMENT): New.
* config/s390/s390.c (override_options): Replace enum pta_flags by
* config/s390/s390.c (override_options): Replace enum pta_flags by
enum processor_flags. Fill in s390_tune_flags and s390_arch_flags.
* config/s390/s390.c (s390_cpu): Rename to ...
@ -263,7 +271,7 @@ Mon Jun 30 15:36:29 CEST 2003 Jan Hubicka <jh@suse.cz>
* config/rs6000/rs6000.c (rs6000_split_altivec_in_gprs): New function.
(altivec_in_gprs_p): New function.
* config/rs6000/rs6000-protos (rs6000_split_altivec_in_gprs): New
* config/rs6000/rs6000-protos (rs6000_split_altivec_in_gprs): New
prototype.
(altivec_in_gprs_p): New prototype.
@ -370,7 +378,7 @@ Sun Jun 29 23:06:32 CEST 2003 Jan Hubicka <jh@suse.cz>
2003-06-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* loop.c (count_one_set): Fix detection of registers set in more
than one basic block.
than one basic block.
2003-06-29 Andreas Jaeger <aj@suse.de>

View File

@ -1,6 +1,6 @@
/* Convert RTL to assembler code and output it, for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@ -205,35 +205,34 @@ rtx current_insn_predicate;
#endif
#ifdef HAVE_ATTR_length
static int asm_insn_count PARAMS ((rtx));
static int asm_insn_count (rtx);
#endif
static void profile_function PARAMS ((FILE *));
static void profile_after_prologue PARAMS ((FILE *));
static bool notice_source_line PARAMS ((rtx));
static rtx walk_alter_subreg PARAMS ((rtx *));
static void output_asm_name PARAMS ((void));
static void output_alternate_entry_point PARAMS ((FILE *, rtx));
static tree get_mem_expr_from_op PARAMS ((rtx, int *));
static void output_asm_operand_names PARAMS ((rtx *, int *, int));
static void output_operand PARAMS ((rtx, int));
static void profile_function (FILE *);
static void profile_after_prologue (FILE *);
static bool notice_source_line (rtx);
static rtx walk_alter_subreg (rtx *);
static void output_asm_name (void);
static void output_alternate_entry_point (FILE *, rtx);
static tree get_mem_expr_from_op (rtx, int *);
static void output_asm_operand_names (rtx *, int *, int);
static void output_operand (rtx, int);
#ifdef LEAF_REGISTERS
static void leaf_renumber_regs PARAMS ((rtx));
static void leaf_renumber_regs (rtx);
#endif
#ifdef HAVE_cc0
static int alter_cond PARAMS ((rtx));
static int alter_cond (rtx);
#endif
#ifndef ADDR_VEC_ALIGN
static int final_addr_vec_align PARAMS ((rtx));
static int final_addr_vec_align (rtx);
#endif
#ifdef HAVE_ATTR_length
static int align_fuzz PARAMS ((rtx, rtx, int, unsigned));
static int align_fuzz (rtx, rtx, int, unsigned);
#endif
/* Initialize data in final at the beginning of a compilation. */
void
init_final (filename)
const char *filename ATTRIBUTE_UNUSED;
init_final (const char *filename ATTRIBUTE_UNUSED)
{
app_on = 0;
final_sequence = 0;
@ -248,16 +247,14 @@ init_final (filename)
If not overridden for epilogue code, then the function body itself
contains return instructions wherever needed. */
void
default_function_pro_epilogue (file, size)
FILE *file ATTRIBUTE_UNUSED;
HOST_WIDE_INT size ATTRIBUTE_UNUSED;
default_function_pro_epilogue (FILE *file ATTRIBUTE_UNUSED,
HOST_WIDE_INT size ATTRIBUTE_UNUSED)
{
}
/* Default target hook that outputs nothing to a stream. */
void
no_asm_to_stream (file)
FILE *file ATTRIBUTE_UNUSED;
no_asm_to_stream (FILE *file ATTRIBUTE_UNUSED)
{
}
@ -265,7 +262,7 @@ no_asm_to_stream (file)
Used before the output from an `asm' statement. */
void
app_enable ()
app_enable (void)
{
if (! app_on)
{
@ -278,7 +275,7 @@ app_enable ()
Called from varasm.c before most kinds of output. */
void
app_disable ()
app_disable (void)
{
if (app_on)
{
@ -293,7 +290,7 @@ app_disable ()
#ifdef DELAY_SLOTS
int
dbr_sequence_length ()
dbr_sequence_length (void)
{
if (final_sequence != 0)
return XVECLEN (final_sequence, 0) - 1;
@ -346,7 +343,7 @@ static struct label_alignment *label_align;
/* Indicate that branch shortening hasn't yet been done. */
void
init_insn_lengths ()
init_insn_lengths (void)
{
if (uid_shuid)
{
@ -373,8 +370,7 @@ init_insn_lengths ()
get its actual length. Otherwise, get its maximum length. */
int
get_attr_length (insn)
rtx insn ATTRIBUTE_UNUSED;
get_attr_length (rtx insn ATTRIBUTE_UNUSED)
{
#ifdef HAVE_ATTR_length
rtx body;
@ -508,8 +504,7 @@ get_attr_length (insn)
#ifndef ADDR_VEC_ALIGN
static int
final_addr_vec_align (addr_vec)
rtx addr_vec;
final_addr_vec_align (rtx addr_vec)
{
int align = GET_MODE_SIZE (GET_MODE (PATTERN (addr_vec)));
@ -539,8 +534,7 @@ static int min_labelno, max_labelno;
/* For the benefit of port specific code do this also as a function. */
int
label_to_alignment (label)
rtx label;
label_to_alignment (rtx label)
{
return LABEL_TO_ALIGNMENT (label);
}
@ -575,10 +569,7 @@ label_to_alignment (label)
The return value is undefined for any other value of GROWTH. */
static int
align_fuzz (start, end, known_align_log, growth)
rtx start, end;
int known_align_log;
unsigned growth;
align_fuzz (rtx start, rtx end, int known_align_log, unsigned int growth)
{
int uid = INSN_UID (start);
rtx align_label;
@ -617,8 +608,7 @@ align_fuzz (start, end, known_align_log, growth)
to exclude the branch size. */
int
insn_current_reference_address (branch)
rtx branch;
insn_current_reference_address (rtx branch)
{
rtx dest, seq;
int seq_uid;
@ -655,7 +645,7 @@ insn_current_reference_address (branch)
#endif /* HAVE_ATTR_length */
void
compute_alignments ()
compute_alignments (void)
{
int log, max_skip, max_log;
basic_block bb;
@ -755,8 +745,7 @@ compute_alignments ()
slots. */
void
shorten_branches (first)
rtx first ATTRIBUTE_UNUSED;
shorten_branches (rtx first ATTRIBUTE_UNUSED)
{
rtx insn;
int max_uid;
@ -1311,8 +1300,7 @@ shorten_branches (first)
This is used to compute its length. */
static int
asm_insn_count (body)
rtx body;
asm_insn_count (rtx body)
{
const char *template;
int count = 1;
@ -1341,10 +1329,8 @@ asm_insn_count (body)
test and compare insns. */
void
final_start_function (first, file, optimize)
rtx first ATTRIBUTE_UNUSED;
FILE *file;
int optimize ATTRIBUTE_UNUSED;
final_start_function (rtx first ATTRIBUTE_UNUSED, FILE *file,
int optimize ATTRIBUTE_UNUSED)
{
block_depth = 0;
@ -1416,8 +1402,7 @@ final_start_function (first, file, optimize)
}
static void
profile_after_prologue (file)
FILE *file ATTRIBUTE_UNUSED;
profile_after_prologue (FILE *file ATTRIBUTE_UNUSED)
{
#ifndef PROFILE_BEFORE_PROLOGUE
if (current_function_profile)
@ -1426,8 +1411,7 @@ profile_after_prologue (file)
}
static void
profile_function (file)
FILE *file ATTRIBUTE_UNUSED;
profile_function (FILE *file ATTRIBUTE_UNUSED)
{
#ifndef NO_PROFILE_COUNTERS
# define NO_PROFILE_COUNTERS 0
@ -1508,7 +1492,7 @@ profile_function (file)
even though not all of them are needed. */
void
final_end_function ()
final_end_function (void)
{
app_disable ();
@ -1540,11 +1524,7 @@ final_end_function ()
Prescanning is done only on certain machines. */
void
final (first, file, optimize, prescan)
rtx first;
FILE *file;
int optimize;
int prescan;
final (rtx first, FILE *file, int optimize, int prescan)
{
rtx insn;
int max_line = 0;
@ -1636,9 +1616,7 @@ final (first, file, optimize, prescan)
}
const char *
get_insn_template (code, insn)
int code;
rtx insn;
get_insn_template (int code, rtx insn)
{
const void *output = insn_data[code].output;
switch (insn_data[code].output_format)
@ -1663,9 +1641,7 @@ get_insn_template (code, insn)
The case fall-through in this function is intentional. */
static void
output_alternate_entry_point (file, insn)
FILE *file;
rtx insn;
output_alternate_entry_point (FILE *file, rtx insn)
{
const char *name = LABEL_NAME (insn);
@ -1699,12 +1675,8 @@ output_alternate_entry_point (file, insn)
used for within delayed branch sequence output). */
rtx
final_scan_insn (insn, file, optimize, prescan, nopeepholes)
rtx insn;
FILE *file;
int optimize ATTRIBUTE_UNUSED;
int prescan;
int nopeepholes ATTRIBUTE_UNUSED;
final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
int prescan, int nopeepholes ATTRIBUTE_UNUSED)
{
#ifdef HAVE_cc0
rtx set;
@ -2527,8 +2499,7 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
based on the NOTE-insn INSN, assumed to be a line number. */
static bool
notice_source_line (insn)
rtx insn;
notice_source_line (rtx insn)
{
const char *filename = insn_file (insn);
int linenum = insn_line (insn);
@ -2548,8 +2519,7 @@ notice_source_line (insn)
directly to the desired hard register. */
void
cleanup_subreg_operands (insn)
rtx insn;
cleanup_subreg_operands (rtx insn)
{
int i;
extract_insn_cached (insn);
@ -2583,8 +2553,7 @@ cleanup_subreg_operands (insn)
based on the thing it is a subreg of. */
rtx
alter_subreg (xp)
rtx *xp;
alter_subreg (rtx *xp)
{
rtx x = *xp;
rtx y = SUBREG_REG (x);
@ -2616,8 +2585,7 @@ alter_subreg (xp)
/* Do alter_subreg on all the SUBREGs contained in X. */
static rtx
walk_alter_subreg (xp)
rtx *xp;
walk_alter_subreg (rtx *xp)
{
rtx x = *xp;
switch (GET_CODE (x))
@ -2654,8 +2622,7 @@ walk_alter_subreg (xp)
2 means that COND has been altered. */
static int
alter_cond (cond)
rtx cond;
alter_cond (rtx cond)
{
int value = 0;
@ -2814,7 +2781,7 @@ output_operand_lossage (const char *msgid, ...)
char *new_message;
const char *pfx_str;
va_list ap;
va_start (ap, msgid);
pfx_str = this_is_asm_operands ? _("invalid `asm': ") : "output_operand: ";
@ -2837,7 +2804,7 @@ output_operand_lossage (const char *msgid, ...)
alternative used. */
static void
output_asm_name ()
output_asm_name (void)
{
if (debug_insn)
{
@ -2862,9 +2829,7 @@ output_asm_name ()
corresponds to the address of the object and 0 if to the object. */
static tree
get_mem_expr_from_op (op, paddressp)
rtx op;
int *paddressp;
get_mem_expr_from_op (rtx op, int *paddressp)
{
tree expr;
int inner_addressp;
@ -2905,10 +2870,7 @@ get_mem_expr_from_op (op, paddressp)
is the number of operands to write. */
static void
output_asm_operand_names (operands, oporder, nops)
rtx *operands;
int *oporder;
int nops;
output_asm_operand_names (rtx *operands, int *oporder, int nops)
{
int wrote = 0;
int i;
@ -2952,9 +2914,7 @@ output_asm_operand_names (operands, oporder, nops)
of the operand, with no other punctuation. */
void
output_asm_insn (template, operands)
const char *template;
rtx *operands;
output_asm_insn (const char *template, rtx *operands)
{
const char *p;
int c;
@ -3160,8 +3120,7 @@ output_asm_insn (template, operands)
/* Output a LABEL_REF, or a bare CODE_LABEL, as an assembler symbol. */
void
output_asm_label (x)
rtx x;
output_asm_label (rtx x)
{
char buf[256];
@ -3188,9 +3147,7 @@ output_asm_label (x)
by PRINT_OPERAND. */
static void
output_operand (x, code)
rtx x;
int code ATTRIBUTE_UNUSED;
output_operand (rtx x, int code ATTRIBUTE_UNUSED)
{
if (x && GET_CODE (x) == SUBREG)
x = alter_subreg (&x);
@ -3209,8 +3166,7 @@ output_operand (x, code)
The macro PRINT_OPERAND_ADDRESS exists just to control this function. */
void
output_address (x)
rtx x;
output_address (rtx x)
{
walk_alter_subreg (&x);
PRINT_OPERAND_ADDRESS (asm_out_file, x);
@ -3221,9 +3177,7 @@ output_address (x)
that may appear in these expressions. */
void
output_addr_const (file, x)
FILE *file;
rtx x;
output_addr_const (FILE *file, rtx x)
{
char buf[256];
@ -3355,7 +3309,7 @@ asm_fprintf (FILE *file, const char *p, ...)
char buf[10];
char *q, c;
va_list argptr;
va_start (argptr, p);
buf[0] = '%';
@ -3447,7 +3401,7 @@ asm_fprintf (FILE *file, const char *p, ...)
*q = 0;
fprintf (file, buf, va_arg (argptr, long));
}
break;
case 's':
@ -3515,9 +3469,7 @@ asm_fprintf (FILE *file, const char *p, ...)
and in *SECOND the other. */
void
split_double (value, first, second)
rtx value;
rtx *first, *second;
split_double (rtx value, rtx *first, rtx *second)
{
if (GET_CODE (value) == CONST_INT)
{
@ -3656,7 +3608,7 @@ split_double (value, first, second)
/* Return nonzero if this function has no function calls. */
int
leaf_function_p ()
leaf_function_p (void)
{
rtx insn;
rtx link;
@ -3699,8 +3651,7 @@ leaf_function_p ()
output templates to customary add branch prediction hints.
*/
int
final_forward_branch_p (insn)
rtx insn;
final_forward_branch_p (rtx insn)
{
int insn_id, label_id;
if (!uid_shuid)
@ -3728,7 +3679,7 @@ final_forward_branch_p (insn)
safely renumbered. */
int
only_leaf_regs_used ()
only_leaf_regs_used (void)
{
int i;
const char *const permitted_reg_in_leaf_functions = LEAF_REGISTERS;
@ -3751,8 +3702,7 @@ only_leaf_regs_used ()
available in leaf functions. */
static void
leaf_renumber_regs (first)
rtx first;
leaf_renumber_regs (rtx first)
{
rtx insn;
@ -3773,8 +3723,7 @@ leaf_renumber_regs (first)
available in leaf functions. */
void
leaf_renumber_regs_insn (in_rtx)
rtx in_rtx;
leaf_renumber_regs_insn (rtx in_rtx)
{
int i, j;
const char *format_ptr;
@ -3872,15 +3821,15 @@ static int symbol_queue_size = 0;
the nesting depth goes to 0 is this routine called. */
void
debug_flush_symbol_queue ()
debug_flush_symbol_queue (void)
{
int i;
/* Make sure that additionally queued items are not flushed
prematurely. */
++debug_nesting;
for (i = 0; i < symbol_queue_index; ++i)
{
/* If we pushed queued symbols then such symbols are must be
@ -3902,17 +3851,17 @@ debug_flush_symbol_queue ()
}
symbol_queue_index = 0;
--debug_nesting;
--debug_nesting;
}
/* Queue a type symbol needed as part of the definition of a decl
symbol. These symbols are generated when debug_flush_symbol_queue()
is called. */
void
void
debug_queue_symbol (tree decl)
{
if (symbol_queue_index >= symbol_queue_size)
if (symbol_queue_index >= symbol_queue_size)
{
symbol_queue_size += 10;
symbol_queue = (tree *) xrealloc (symbol_queue,
@ -3920,11 +3869,11 @@ debug_queue_symbol (tree decl)
}
symbol_queue[symbol_queue_index++] = decl;
}
}
/* Free symbol queue. */
void
debug_free_queue ()
debug_free_queue (void)
{
if (symbol_queue)
{

View File

@ -99,7 +99,7 @@ extern bool warnings_are_errors;
set_Wunused() to update the -Wunused-* flags that correspond to the
-Wunused option. */
extern void set_Wunused PARAMS ((int setting));
extern void set_Wunused (int setting);
extern bool warn_unused_function;
extern bool warn_unused_label;

View File

@ -206,7 +206,7 @@ rtx regs_may_share;
/* Callback that determines if it's ok for a function to have no
noreturn attribute. */
int (*lang_missing_noreturn_ok_p) PARAMS ((tree));
int (*lang_missing_noreturn_ok_p) (tree);
/* Set of registers that may be eliminable. These are handled specially
in updating regs_ever_live. */
@ -286,64 +286,52 @@ static int ndead;
#define MAX_MEM_SET_LIST_LEN 100
/* Forward declarations */
static int verify_wide_reg_1 PARAMS ((rtx *, void *));
static void verify_wide_reg PARAMS ((int, basic_block));
static void verify_local_live_at_start PARAMS ((regset, basic_block));
static void notice_stack_pointer_modification_1 PARAMS ((rtx, rtx, void *));
static void notice_stack_pointer_modification PARAMS ((rtx));
static void mark_reg PARAMS ((rtx, void *));
static void mark_regs_live_at_end PARAMS ((regset));
static int set_phi_alternative_reg PARAMS ((rtx, int, int, void *));
static void calculate_global_regs_live PARAMS ((sbitmap, sbitmap, int));
static void propagate_block_delete_insn PARAMS ((rtx));
static rtx propagate_block_delete_libcall PARAMS ((rtx, rtx));
static int insn_dead_p PARAMS ((struct propagate_block_info *,
rtx, int, rtx));
static int libcall_dead_p PARAMS ((struct propagate_block_info *,
rtx, rtx));
static void mark_set_regs PARAMS ((struct propagate_block_info *,
rtx, rtx));
static void mark_set_1 PARAMS ((struct propagate_block_info *,
enum rtx_code, rtx, rtx,
rtx, int));
static int find_regno_partial PARAMS ((rtx *, void *));
static int verify_wide_reg_1 (rtx *, void *);
static void verify_wide_reg (int, basic_block);
static void verify_local_live_at_start (regset, basic_block);
static void notice_stack_pointer_modification_1 (rtx, rtx, void *);
static void notice_stack_pointer_modification (rtx);
static void mark_reg (rtx, void *);
static void mark_regs_live_at_end (regset);
static int set_phi_alternative_reg (rtx, int, int, void *);
static void calculate_global_regs_live (sbitmap, sbitmap, int);
static void propagate_block_delete_insn (rtx);
static rtx propagate_block_delete_libcall (rtx, rtx);
static int insn_dead_p (struct propagate_block_info *, rtx, int, rtx);
static int libcall_dead_p (struct propagate_block_info *, rtx, rtx);
static void mark_set_regs (struct propagate_block_info *, rtx, rtx);
static void mark_set_1 (struct propagate_block_info *, enum rtx_code, rtx,
rtx, rtx, int);
static int find_regno_partial (rtx *, void *);
#ifdef HAVE_conditional_execution
static int mark_regno_cond_dead PARAMS ((struct propagate_block_info *,
int, rtx));
static void free_reg_cond_life_info PARAMS ((splay_tree_value));
static int flush_reg_cond_reg_1 PARAMS ((splay_tree_node, void *));
static void flush_reg_cond_reg PARAMS ((struct propagate_block_info *,
int));
static rtx elim_reg_cond PARAMS ((rtx, unsigned int));
static rtx ior_reg_cond PARAMS ((rtx, rtx, int));
static rtx not_reg_cond PARAMS ((rtx));
static rtx and_reg_cond PARAMS ((rtx, rtx, int));
static int mark_regno_cond_dead (struct propagate_block_info *, int, rtx);
static void free_reg_cond_life_info (splay_tree_value);
static int flush_reg_cond_reg_1 (splay_tree_node, void *);
static void flush_reg_cond_reg (struct propagate_block_info *, int);
static rtx elim_reg_cond (rtx, unsigned int);
static rtx ior_reg_cond (rtx, rtx, int);
static rtx not_reg_cond (rtx);
static rtx and_reg_cond (rtx, rtx, int);
#endif
#ifdef AUTO_INC_DEC
static void attempt_auto_inc PARAMS ((struct propagate_block_info *,
rtx, rtx, rtx, rtx, rtx));
static void find_auto_inc PARAMS ((struct propagate_block_info *,
rtx, rtx));
static int try_pre_increment_1 PARAMS ((struct propagate_block_info *,
rtx));
static int try_pre_increment PARAMS ((rtx, rtx, HOST_WIDE_INT));
static void attempt_auto_inc (struct propagate_block_info *, rtx, rtx, rtx,
rtx, rtx);
static void find_auto_inc (struct propagate_block_info *, rtx, rtx);
static int try_pre_increment_1 (struct propagate_block_info *, rtx);
static int try_pre_increment (rtx, rtx, HOST_WIDE_INT);
#endif
static void mark_used_reg PARAMS ((struct propagate_block_info *,
rtx, rtx, rtx));
static void mark_used_regs PARAMS ((struct propagate_block_info *,
rtx, rtx, rtx));
void debug_flow_info PARAMS ((void));
static void add_to_mem_set_list PARAMS ((struct propagate_block_info *,
rtx));
static int invalidate_mems_from_autoinc PARAMS ((rtx *, void *));
static void invalidate_mems_from_set PARAMS ((struct propagate_block_info *,
rtx));
static void clear_log_links PARAMS ((sbitmap));
static void mark_used_reg (struct propagate_block_info *, rtx, rtx, rtx);
static void mark_used_regs (struct propagate_block_info *, rtx, rtx, rtx);
void debug_flow_info (void);
static void add_to_mem_set_list (struct propagate_block_info *, rtx);
static int invalidate_mems_from_autoinc (rtx *, void *);
static void invalidate_mems_from_set (struct propagate_block_info *, rtx);
static void clear_log_links (sbitmap);
void
check_function_return_warnings ()
check_function_return_warnings (void)
{
if (warn_missing_noreturn
&& !TREE_THIS_VOLATILE (cfun->decl)
@ -387,8 +375,7 @@ check_function_return_warnings ()
note associated with the BLOCK. */
rtx
first_insn_after_basic_block_note (block)
basic_block block;
first_insn_after_basic_block_note (basic_block block)
{
rtx insn;
@ -410,10 +397,7 @@ first_insn_after_basic_block_note (block)
to be used in accumulating flow info. */
void
life_analysis (f, file, flags)
rtx f;
FILE *file;
int flags;
life_analysis (rtx f, FILE *file, int flags)
{
#ifdef ELIMINABLE_REGS
int i;
@ -502,9 +486,7 @@ life_analysis (f, file, flags)
word_mode. */
static int
verify_wide_reg_1 (px, pregno)
rtx *px;
void *pregno;
verify_wide_reg_1 (rtx *px, void *pregno)
{
rtx x = *px;
unsigned int regno = *(int *) pregno;
@ -522,9 +504,7 @@ verify_wide_reg_1 (px, pregno)
of BB looking for register REGNO. */
static void
verify_wide_reg (regno, bb)
int regno;
basic_block bb;
verify_wide_reg (int regno, basic_block bb)
{
rtx head = bb->head, end = bb->end;
@ -555,9 +535,7 @@ verify_wide_reg (regno, bb)
changes in live_at_start during a local update. */
static void
verify_local_live_at_start (new_live_at_start, bb)
regset new_live_at_start;
basic_block bb;
verify_local_live_at_start (regset new_live_at_start, basic_block bb)
{
if (reload_completed)
{
@ -622,10 +600,7 @@ verify_local_live_at_start (new_live_at_start, bb)
unless the caller resets it to zero. */
int
update_life_info (blocks, extent, prop_flags)
sbitmap blocks;
enum update_life_extent extent;
int prop_flags;
update_life_info (sbitmap blocks, enum update_life_extent extent, int prop_flags)
{
regset tmp;
regset_head tmp_head;
@ -689,7 +664,7 @@ update_life_info (blocks, extent, prop_flags)
Further improvement may be possible. */
cleanup_cfg (CLEANUP_EXPENSIVE);
/* Zap the life information from the last round. If we don't
/* Zap the life information from the last round. If we don't
do this, we can wind up with registers that no longer appear
in the code being marked live at entry, which twiggs bogus
warnings from regno_uninitialized. */
@ -775,9 +750,7 @@ update_life_info (blocks, extent, prop_flags)
/* Update life information in all blocks where BB_DIRTY is set. */
int
update_life_info_in_dirty_blocks (extent, prop_flags)
enum update_life_extent extent;
int prop_flags;
update_life_info_in_dirty_blocks (enum update_life_extent extent, int prop_flags)
{
sbitmap update_life_blocks = sbitmap_alloc (last_basic_block);
int n = 0;
@ -817,8 +790,7 @@ update_life_info_in_dirty_blocks (extent, prop_flags)
KEEP_HEAD_END_P is nonzero if basic_block_info is not to be freed. */
void
free_basic_block_vars (keep_head_end_p)
int keep_head_end_p;
free_basic_block_vars (int keep_head_end_p)
{
if (! keep_head_end_p)
{
@ -840,8 +812,7 @@ free_basic_block_vars (keep_head_end_p)
/* Delete any insns that copy a register to itself. */
int
delete_noop_moves (f)
rtx f ATTRIBUTE_UNUSED;
delete_noop_moves (rtx f ATTRIBUTE_UNUSED)
{
rtx insn, next;
basic_block bb;
@ -886,7 +857,7 @@ delete_noop_moves (f)
insns computing the destination, so we delay deleting and garbagecollect
them once life information is computed. */
void
delete_dead_jumptables ()
delete_dead_jumptables (void)
{
rtx insn, next;
for (insn = get_insns (); insn; insn = next)
@ -911,10 +882,8 @@ delete_dead_jumptables ()
Only useful before prologues have been emitted. */
static void
notice_stack_pointer_modification_1 (x, pat, data)
rtx x;
rtx pat ATTRIBUTE_UNUSED;
void *data ATTRIBUTE_UNUSED;
notice_stack_pointer_modification_1 (rtx x, rtx pat ATTRIBUTE_UNUSED,
void *data ATTRIBUTE_UNUSED)
{
if (x == stack_pointer_rtx
/* The stack pointer is only modified indirectly as the result
@ -927,8 +896,7 @@ notice_stack_pointer_modification_1 (x, pat, data)
}
static void
notice_stack_pointer_modification (f)
rtx f;
notice_stack_pointer_modification (rtx f)
{
rtx insn;
@ -955,9 +923,7 @@ notice_stack_pointer_modification (f)
of their component registers set as well. */
static void
mark_reg (reg, xset)
rtx reg;
void *xset;
mark_reg (rtx reg, void *xset)
{
regset set = (regset) xset;
int regno = REGNO (reg);
@ -978,8 +944,7 @@ mark_reg (reg, xset)
at the end of the last basic block. */
static void
mark_regs_live_at_end (set)
regset set;
mark_regs_live_at_end (regset set)
{
unsigned int i;
@ -1073,11 +1038,9 @@ mark_regs_live_at_end (set)
INSN, in the regset. */
static int
set_phi_alternative_reg (insn, dest_regno, src_regno, data)
rtx insn ATTRIBUTE_UNUSED;
int dest_regno ATTRIBUTE_UNUSED;
int src_regno;
void *data;
set_phi_alternative_reg (rtx insn ATTRIBUTE_UNUSED,
int dest_regno ATTRIBUTE_UNUSED, int src_regno,
void *data)
{
regset live = (regset) data;
SET_REGNO_REG_SET (live, src_regno);
@ -1091,9 +1054,7 @@ set_phi_alternative_reg (insn, dest_regno, src_regno, data)
BLOCKS_OUT is set for every block that was changed. */
static void
calculate_global_regs_live (blocks_in, blocks_out, flags)
sbitmap blocks_in, blocks_out;
int flags;
calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
{
basic_block *queue, *qhead, *qtail, *qend, bb;
regset tmp, new_live_at_end, invalidated_by_call;
@ -1405,9 +1366,7 @@ typedef struct {
part of an expression which only uses part of the register. Return
it in the structure passed in. */
static int
find_regno_partial (ptr, data)
rtx *ptr;
void *data;
find_regno_partial (rtx *ptr, void *data)
{
find_regno_partial_param *param = (find_regno_partial_param *)data;
unsigned reg = param->regno_to_find;
@ -1452,7 +1411,7 @@ find_regno_partial (ptr, data)
bits we don't want. */
int
initialize_uninitialized_subregs ()
initialize_uninitialized_subregs (void)
{
rtx insn;
edge e;
@ -1507,7 +1466,7 @@ initialize_uninitialized_subregs ()
of life analysis. Not static since used also for stupid life analysis. */
void
allocate_bb_life_data ()
allocate_bb_life_data (void)
{
basic_block bb;
@ -1521,7 +1480,7 @@ allocate_bb_life_data ()
}
void
allocate_reg_life_data ()
allocate_reg_life_data (void)
{
int i;
@ -1548,8 +1507,7 @@ allocate_reg_life_data ()
/* Delete dead instructions for propagate_block. */
static void
propagate_block_delete_insn (insn)
rtx insn;
propagate_block_delete_insn (rtx insn)
{
rtx inote = find_reg_note (insn, REG_LABEL, NULL_RTX);
@ -1598,8 +1556,7 @@ propagate_block_delete_insn (insn)
before the libcall. */
static rtx
propagate_block_delete_libcall ( insn, note)
rtx insn, note;
propagate_block_delete_libcall (rtx insn, rtx note)
{
rtx first = XEXP (note, 0);
rtx before = PREV_INSN (first);
@ -1612,9 +1569,7 @@ propagate_block_delete_libcall ( insn, note)
/* Update the life-status of regs for one insn. Return the previous insn. */
rtx
propagate_one_insn (pbi, insn)
struct propagate_block_info *pbi;
rtx insn;
propagate_one_insn (struct propagate_block_info *pbi, rtx insn)
{
rtx prev = PREV_INSN (insn);
int flags = pbi->flags;
@ -1672,16 +1627,16 @@ propagate_one_insn (pbi, insn)
as a whole is not dead, then we want to remove INSN, but
not the whole libcall sequence.
However, we need to also remove the dangling REG_LIBCALL
However, we need to also remove the dangling REG_LIBCALL
note so that we do not have mis-matched LIBCALL/RETVAL
notes. In theory we could find a new location for the
REG_RETVAL note, but it hardly seems worth the effort.
REG_RETVAL note, but it hardly seems worth the effort.
NOTE at this point will be the RETVAL note if it exists. */
if (note)
{
rtx libcall_note;
libcall_note
= find_reg_note (XEXP (note, 0), REG_LIBCALL, NULL_RTX);
remove_note (XEXP (note, 0), libcall_note);
@ -1880,10 +1835,8 @@ propagate_one_insn (pbi, insn)
the user can use the regsets provided here. */
struct propagate_block_info *
init_propagate_block_info (bb, live, local_set, cond_local_set, flags)
basic_block bb;
regset live, local_set, cond_local_set;
int flags;
init_propagate_block_info (basic_block bb, regset live, regset local_set,
regset cond_local_set, int flags)
{
struct propagate_block_info *pbi = xmalloc (sizeof (*pbi));
@ -2042,8 +1995,7 @@ init_propagate_block_info (bb, live, local_set, cond_local_set, flags)
/* Release a propagate_block_info struct. */
void
free_propagate_block_info (pbi)
struct propagate_block_info *pbi;
free_propagate_block_info (struct propagate_block_info *pbi)
{
free_EXPR_LIST_list (&pbi->mem_set_list);
@ -2079,12 +2031,8 @@ free_propagate_block_info (pbi)
Return nonzero if an INSN is deleted (i.e. by dead code removal). */
int
propagate_block (bb, live, local_set, cond_local_set, flags)
basic_block bb;
regset live;
regset local_set;
regset cond_local_set;
int flags;
propagate_block (basic_block bb, regset live, regset local_set,
regset cond_local_set, int flags)
{
struct propagate_block_info *pbi;
rtx insn, prev;
@ -2136,11 +2084,8 @@ propagate_block (bb, live, local_set, cond_local_set, flags)
pertaining to the insn. */
static int
insn_dead_p (pbi, x, call_ok, notes)
struct propagate_block_info *pbi;
rtx x;
int call_ok;
rtx notes ATTRIBUTE_UNUSED;
insn_dead_p (struct propagate_block_info *pbi, rtx x, int call_ok,
rtx notes ATTRIBUTE_UNUSED)
{
enum rtx_code code = GET_CODE (x);
@ -2333,10 +2278,7 @@ insn_dead_p (pbi, x, call_ok, notes)
NOTE is the REG_RETVAL note of the insn. */
static int
libcall_dead_p (pbi, note, insn)
struct propagate_block_info *pbi;
rtx note;
rtx insn;
libcall_dead_p (struct propagate_block_info *pbi, rtx note, rtx insn)
{
rtx x = single_set (insn);
@ -2390,8 +2332,7 @@ libcall_dead_p (pbi, note, insn)
fixed hard registers. */
int
regno_uninitialized (regno)
unsigned int regno;
regno_uninitialized (unsigned int regno)
{
if (n_basic_blocks == 0
|| (regno < FIRST_PSEUDO_REGISTER
@ -2408,8 +2349,7 @@ regno_uninitialized (regno)
Such regs may be clobbered by `longjmp'. */
int
regno_clobbered_at_setjmp (regno)
int regno;
regno_clobbered_at_setjmp (int regno)
{
if (n_basic_blocks == 0)
return 0;
@ -2422,9 +2362,7 @@ regno_clobbered_at_setjmp (regno)
/* Add MEM to PBI->MEM_SET_LIST. MEM should be canonical. Respect the
maximal list size; look for overlaps in mode and select the largest. */
static void
add_to_mem_set_list (pbi, mem)
struct propagate_block_info *pbi;
rtx mem;
add_to_mem_set_list (struct propagate_block_info *pbi, rtx mem)
{
rtx i;
@ -2471,9 +2409,7 @@ add_to_mem_set_list (pbi, mem)
to an address change. */
static int
invalidate_mems_from_autoinc (px, data)
rtx *px;
void *data;
invalidate_mems_from_autoinc (rtx *px, void *data)
{
rtx x = *px;
struct propagate_block_info *pbi = data;
@ -2490,9 +2426,7 @@ invalidate_mems_from_autoinc (px, data)
/* EXP is a REG. Remove any dependent entries from pbi->mem_set_list. */
static void
invalidate_mems_from_set (pbi, exp)
struct propagate_block_info *pbi;
rtx exp;
invalidate_mems_from_set (struct propagate_block_info *pbi, rtx exp)
{
rtx temp = pbi->mem_set_list;
rtx prev = NULL_RTX;
@ -2525,9 +2459,7 @@ invalidate_mems_from_set (pbi, exp)
FLAGS is the set of operations to perform. */
static void
mark_set_regs (pbi, x, insn)
struct propagate_block_info *pbi;
rtx x, insn;
mark_set_regs (struct propagate_block_info *pbi, rtx x, rtx insn)
{
rtx cond = NULL_RTX;
rtx link;
@ -2598,11 +2530,7 @@ mark_set_regs (pbi, x, insn)
will be the condition. */
static void
mark_set_1 (pbi, code, reg, cond, insn, flags)
struct propagate_block_info *pbi;
enum rtx_code code;
rtx reg, cond, insn;
int flags;
mark_set_1 (struct propagate_block_info *pbi, enum rtx_code code, rtx reg, rtx cond, rtx insn, int flags)
{
int regno_first = -1, regno_last = -1;
unsigned long not_dead = 0;
@ -2906,10 +2834,7 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
Return true if the register is now unconditionally dead. */
static int
mark_regno_cond_dead (pbi, regno, cond)
struct propagate_block_info *pbi;
int regno;
rtx cond;
mark_regno_cond_dead (struct propagate_block_info *pbi, int regno, rtx cond)
{
/* If this is a store to a predicate register, the value of the
predicate is changing, we don't know that the predicate as seen
@ -2992,8 +2917,7 @@ mark_regno_cond_dead (pbi, regno, cond)
/* Called from splay_tree_delete for pbi->reg_cond_life. */
static void
free_reg_cond_life_info (value)
splay_tree_value value;
free_reg_cond_life_info (splay_tree_value value)
{
struct reg_cond_life_info *rcli = (struct reg_cond_life_info *) value;
free (rcli);
@ -3002,9 +2926,7 @@ free_reg_cond_life_info (value)
/* Helper function for flush_reg_cond_reg. */
static int
flush_reg_cond_reg_1 (node, data)
splay_tree_node node;
void *data;
flush_reg_cond_reg_1 (splay_tree_node node, void *data)
{
struct reg_cond_life_info *rcli;
int *xdata = (int *) data;
@ -3036,9 +2958,7 @@ flush_reg_cond_reg_1 (node, data)
/* Flush all (sub) expressions referring to REGNO from REG_COND_LIVE. */
static void
flush_reg_cond_reg (pbi, regno)
struct propagate_block_info *pbi;
int regno;
flush_reg_cond_reg (struct propagate_block_info *pbi, int regno)
{
int pair[2];
@ -3061,9 +2981,7 @@ flush_reg_cond_reg (pbi, regno)
ADD. */
static rtx
ior_reg_cond (old, x, add)
rtx old, x;
int add;
ior_reg_cond (rtx old, rtx x, int add)
{
rtx op0, op1;
@ -3151,8 +3069,7 @@ ior_reg_cond (old, x, add)
}
static rtx
not_reg_cond (x)
rtx x;
not_reg_cond (rtx x)
{
enum rtx_code x_code;
@ -3176,9 +3093,7 @@ not_reg_cond (x)
}
static rtx
and_reg_cond (old, x, add)
rtx old, x;
int add;
and_reg_cond (rtx old, rtx x, int add)
{
rtx op0, op1;
@ -3271,9 +3186,7 @@ and_reg_cond (old, x, add)
is used when the value of REGNO changes. */
static rtx
elim_reg_cond (x, regno)
rtx x;
unsigned int regno;
elim_reg_cond (rtx x, unsigned int regno)
{
rtx op0, op1;
@ -3337,9 +3250,8 @@ elim_reg_cond (x, regno)
else. */
static void
attempt_auto_inc (pbi, inc, insn, mem, incr, incr_reg)
struct propagate_block_info *pbi;
rtx inc, insn, mem, incr, incr_reg;
attempt_auto_inc (struct propagate_block_info *pbi, rtx inc, rtx insn,
rtx mem, rtx incr, rtx incr_reg)
{
int regno = REGNO (incr_reg);
rtx set = single_set (incr);
@ -3481,10 +3393,7 @@ attempt_auto_inc (pbi, inc, insn, mem, incr, incr_reg)
reference. */
static void
find_auto_inc (pbi, x, insn)
struct propagate_block_info *pbi;
rtx x;
rtx insn;
find_auto_inc (struct propagate_block_info *pbi, rtx x, rtx insn)
{
rtx addr = XEXP (x, 0);
HOST_WIDE_INT offset = 0;
@ -3573,11 +3482,8 @@ find_auto_inc (pbi, x, insn)
#endif /* AUTO_INC_DEC */
static void
mark_used_reg (pbi, reg, cond, insn)
struct propagate_block_info *pbi;
rtx reg;
rtx cond ATTRIBUTE_UNUSED;
rtx insn;
mark_used_reg (struct propagate_block_info *pbi, rtx reg,
rtx cond ATTRIBUTE_UNUSED, rtx insn)
{
unsigned int regno_first, regno_last, i;
int some_was_live, some_was_dead, some_not_set;
@ -3765,9 +3671,7 @@ mark_used_reg (pbi, reg, cond, insn)
is not called. */
static void
mark_used_regs (pbi, x, cond, insn)
struct propagate_block_info *pbi;
rtx x, cond, insn;
mark_used_regs (struct propagate_block_info *pbi, rtx x, rtx cond, rtx insn)
{
RTX_CODE code;
int regno;
@ -4046,9 +3950,7 @@ mark_used_regs (pbi, x, cond, insn)
#ifdef AUTO_INC_DEC
static int
try_pre_increment_1 (pbi, insn)
struct propagate_block_info *pbi;
rtx insn;
try_pre_increment_1 (struct propagate_block_info *pbi, rtx insn)
{
/* Find the next use of this reg. If in same basic block,
make it do pre-increment or pre-decrement if appropriate. */
@ -4094,9 +3996,7 @@ try_pre_increment_1 (pbi, insn)
This checks all about the validity of the result of modifying INSN. */
static int
try_pre_increment (insn, reg, amount)
rtx insn, reg;
HOST_WIDE_INT amount;
try_pre_increment (rtx insn, rtx reg, HOST_WIDE_INT amount)
{
rtx use;
@ -4174,10 +4074,7 @@ try_pre_increment (insn, reg, amount)
return (rtx) 1. */
rtx
find_use_as_address (x, reg, plusconst)
rtx x;
rtx reg;
HOST_WIDE_INT plusconst;
find_use_as_address (rtx x, rtx reg, HOST_WIDE_INT plusconst)
{
enum rtx_code code = GET_CODE (x);
const char * const fmt = GET_RTX_FORMAT (code);
@ -4236,9 +4133,7 @@ find_use_as_address (x, reg, plusconst)
This is part of making a debugging dump. */
void
dump_regset (r, outf)
regset r;
FILE *outf;
dump_regset (regset r, FILE *outf)
{
int i;
if (r == NULL)
@ -4261,8 +4156,7 @@ dump_regset (r, outf)
debugger. */
void
debug_regset (r)
regset r;
debug_regset (regset r)
{
dump_regset (r, stderr);
putc ('\n', stderr);
@ -4288,9 +4182,7 @@ debug_regset (r)
possibly other information which is used by the register allocators. */
void
recompute_reg_usage (f, loop_step)
rtx f ATTRIBUTE_UNUSED;
int loop_step ATTRIBUTE_UNUSED;
recompute_reg_usage (rtx f ATTRIBUTE_UNUSED, int loop_step ATTRIBUTE_UNUSED)
{
allocate_reg_life_data ();
update_life_info (NULL, UPDATE_LIFE_LOCAL, PROP_REG_INFO);
@ -4301,9 +4193,7 @@ recompute_reg_usage (f, loop_step)
of the number of registers that died. */
int
count_or_remove_death_notes (blocks, kill)
sbitmap blocks;
int kill;
count_or_remove_death_notes (sbitmap blocks, int kill)
{
int count = 0;
basic_block bb;
@ -4369,8 +4259,7 @@ count_or_remove_death_notes (blocks, kill)
if blocks is NULL. */
static void
clear_log_links (blocks)
sbitmap blocks;
clear_log_links (sbitmap blocks)
{
rtx insn;
int i;
@ -4399,9 +4288,7 @@ clear_log_links (blocks)
with moving single words, but probably isn't worth the trouble. */
void
reg_set_to_hard_reg_set (to, from)
HARD_REG_SET *to;
bitmap from;
reg_set_to_hard_reg_set (HARD_REG_SET *to, bitmap from)
{
int i;