unroll.c: Convert prototypes to ISO C90.

* unroll.c: Convert prototypes to ISO C90.
	* varasm.c: Likewise.
	* varray.c: Likewise.
	* varray.h: Likewise.
	* vmsdbgout.c: Likewise.
	* xcoffout.c: Likewise.
	* xcoffout.h: Likewise.

From-SVN: r69007
This commit is contained in:
Andreas Jaeger 2003-07-06 18:53:24 +02:00 committed by Andreas Jaeger
parent dd486eb27c
commit 2e1eedd6bb
8 changed files with 396 additions and 727 deletions

View File

@ -1,3 +1,13 @@
2003-07-06 Andreas Jaeger <aj@suse.de>
* unroll.c: Likewise.
* varasm.c: Likewise.
* varray.c: Likewise.
* varray.h: Likewise.
* vmsdbgout.c: Likewise.
* xcoffout.c: Likewise.
* xcoffout.h: Likewise.
2003-07-06 Nathan Sidwell <nathan@codesourcery.com>
* gcov-io.h: Add a local time stamp.

View File

@ -1,5 +1,6 @@
/* Try to unroll loops, and split induction variables.
Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002
Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
2002, 2003
Free Software Foundation, Inc.
Contributed by James E. Wilson, Cygnus Support/UC Berkeley.
@ -196,28 +197,26 @@ static int *splittable_regs_updates;
/* Forward declarations. */
static rtx simplify_cmp_and_jump_insns PARAMS ((enum rtx_code,
enum machine_mode,
rtx, rtx, rtx));
static void init_reg_map PARAMS ((struct inline_remap *, int));
static rtx calculate_giv_inc PARAMS ((rtx, rtx, unsigned int));
static rtx initial_reg_note_copy PARAMS ((rtx, struct inline_remap *));
static void final_reg_note_copy PARAMS ((rtx *, struct inline_remap *));
static void copy_loop_body PARAMS ((struct loop *, rtx, rtx,
struct inline_remap *, rtx, int,
enum unroll_types, rtx, rtx, rtx, rtx));
static int find_splittable_regs PARAMS ((const struct loop *,
enum unroll_types, int));
static int find_splittable_givs PARAMS ((const struct loop *,
struct iv_class *, enum unroll_types,
rtx, int));
static int reg_dead_after_loop PARAMS ((const struct loop *, rtx));
static rtx fold_rtx_mult_add PARAMS ((rtx, rtx, rtx, enum machine_mode));
static rtx remap_split_bivs PARAMS ((struct loop *, rtx));
static rtx find_common_reg_term PARAMS ((rtx, rtx));
static rtx subtract_reg_term PARAMS ((rtx, rtx));
static rtx loop_find_equiv_value PARAMS ((const struct loop *, rtx));
static rtx ujump_to_loop_cont PARAMS ((rtx, rtx));
static rtx simplify_cmp_and_jump_insns (enum rtx_code, enum machine_mode,
rtx, rtx, rtx);
static void init_reg_map (struct inline_remap *, int);
static rtx calculate_giv_inc (rtx, rtx, unsigned int);
static rtx initial_reg_note_copy (rtx, struct inline_remap *);
static void final_reg_note_copy (rtx *, struct inline_remap *);
static void copy_loop_body (struct loop *, rtx, rtx,
struct inline_remap *, rtx, int,
enum unroll_types, rtx, rtx, rtx, rtx);
static int find_splittable_regs (const struct loop *, enum unroll_types,
int);
static int find_splittable_givs (const struct loop *, struct iv_class *,
enum unroll_types, rtx, int);
static int reg_dead_after_loop (const struct loop *, rtx);
static rtx fold_rtx_mult_add (rtx, rtx, rtx, enum machine_mode);
static rtx remap_split_bivs (struct loop *, rtx);
static rtx find_common_reg_term (rtx, rtx);
static rtx subtract_reg_term (rtx, rtx);
static rtx loop_find_equiv_value (const struct loop *, rtx);
static rtx ujump_to_loop_cont (rtx, rtx);
/* Try to unroll one loop and split induction variables in the loop.
@ -229,10 +228,7 @@ static rtx ujump_to_loop_cont PARAMS ((rtx, rtx));
in loop.c. */
void
unroll_loop (loop, insn_count, strength_reduce_p)
struct loop *loop;
int insn_count;
int strength_reduce_p;
unroll_loop (struct loop *loop, int insn_count, int strength_reduce_p)
{
struct loop_info *loop_info = LOOP_INFO (loop);
struct loop_ivs *ivs = LOOP_IVS (loop);
@ -1332,16 +1328,14 @@ unroll_loop (loop, insn_count, strength_reduce_p)
free (map);
}
/* A helper function for unroll_loop. Emit a compare and branch to
/* A helper function for unroll_loop. Emit a compare and branch to
satisfy (CMP OP1 OP2), but pass this through the simplifier first.
If the branch turned out to be conditional, return it, otherwise
return NULL. */
static rtx
simplify_cmp_and_jump_insns (code, mode, op0, op1, label)
enum rtx_code code;
enum machine_mode mode;
rtx op0, op1, label;
simplify_cmp_and_jump_insns (enum rtx_code code, enum machine_mode mode,
rtx op0, rtx op1, rtx label)
{
rtx t, insn;
@ -1387,10 +1381,9 @@ simplify_cmp_and_jump_insns (code, mode, op0, op1, label)
reflected in RTX_COST. */
int
precondition_loop_p (loop, initial_value, final_value, increment, mode)
const struct loop *loop;
rtx *initial_value, *final_value, *increment;
enum machine_mode *mode;
precondition_loop_p (const struct loop *loop, rtx *initial_value,
rtx *final_value, rtx *increment,
enum machine_mode *mode)
{
rtx loop_start = loop->start;
struct loop_info *loop_info = LOOP_INFO (loop);
@ -1547,9 +1540,7 @@ precondition_loop_p (loop, initial_value, final_value, increment, mode)
modes. */
static void
init_reg_map (map, maxregnum)
struct inline_remap *map;
int maxregnum;
init_reg_map (struct inline_remap *map, int maxregnum)
{
int i;
@ -1574,9 +1565,7 @@ init_reg_map (map, maxregnum)
The return value is the amount that the giv is incremented by. */
static rtx
calculate_giv_inc (pattern, src_insn, regno)
rtx pattern, src_insn;
unsigned int regno;
calculate_giv_inc (rtx pattern, rtx src_insn, unsigned int regno)
{
rtx increment;
rtx increment_total = 0;
@ -1697,9 +1686,7 @@ calculate_giv_inc (pattern, src_insn, regno)
the reg_map entries can change during copying. */
static rtx
initial_reg_note_copy (notes, map)
rtx notes;
struct inline_remap *map;
initial_reg_note_copy (rtx notes, struct inline_remap *map)
{
rtx copy;
@ -1725,9 +1712,7 @@ initial_reg_note_copy (notes, map)
/* Fixup insn references in copied REG_NOTES. */
static void
final_reg_note_copy (notesp, map)
rtx *notesp;
struct inline_remap *map;
final_reg_note_copy (rtx *notesp, struct inline_remap *map)
{
while (*notesp)
{
@ -1757,16 +1742,11 @@ final_reg_note_copy (notesp, map)
This is very similar to a loop in expand_inline_function. */
static void
copy_loop_body (loop, copy_start, copy_end, map, exit_label, last_iteration,
unroll_type, start_label, loop_end, insert_before,
copy_notes_from)
struct loop *loop;
rtx copy_start, copy_end;
struct inline_remap *map;
rtx exit_label;
int last_iteration;
enum unroll_types unroll_type;
rtx start_label, loop_end, insert_before, copy_notes_from;
copy_loop_body (struct loop *loop, rtx copy_start, rtx copy_end,
struct inline_remap *map, rtx exit_label,
int last_iteration, enum unroll_types unroll_type,
rtx start_label, rtx loop_end, rtx insert_before,
rtx copy_notes_from)
{
struct loop_ivs *ivs = LOOP_IVS (loop);
rtx insn, pattern;
@ -2326,8 +2306,7 @@ copy_loop_body (loop, copy_start, copy_end, map, exit_label, last_iteration,
won't fit in the immediate field of a PLUS insns. */
void
emit_unrolled_add (dest_reg, src_reg, increment)
rtx dest_reg, src_reg, increment;
emit_unrolled_add (rtx dest_reg, rtx src_reg, rtx increment)
{
rtx result;
@ -2347,9 +2326,7 @@ emit_unrolled_add (dest_reg, src_reg, increment)
and uses a negligible amount of CPU time on average. */
int
back_branch_in_range_p (loop, insn)
const struct loop *loop;
rtx insn;
back_branch_in_range_p (const struct loop *loop, rtx insn)
{
rtx p, q, target_insn;
rtx loop_start = loop->start;
@ -2395,9 +2372,7 @@ back_branch_in_range_p (loop, insn)
value of giv's. */
static rtx
fold_rtx_mult_add (mult1, mult2, add1, mode)
rtx mult1, mult2, add1;
enum machine_mode mode;
fold_rtx_mult_add (rtx mult1, rtx mult2, rtx add1, enum machine_mode mode)
{
rtx temp, mult_res;
rtx result;
@ -2444,8 +2419,7 @@ fold_rtx_mult_add (mult1, mult2, add1, mode)
if it can be calculated. Otherwise, returns 0. */
rtx
biv_total_increment (bl)
const struct iv_class *bl;
biv_total_increment (const struct iv_class *bl)
{
struct induction *v;
rtx result;
@ -2496,10 +2470,8 @@ biv_total_increment (bl)
times, since multiplies by small integers (1,2,3,4) are very cheap. */
static int
find_splittable_regs (loop, unroll_type, unroll_number)
const struct loop *loop;
enum unroll_types unroll_type;
int unroll_number;
find_splittable_regs (const struct loop *loop,
enum unroll_types unroll_type, int unroll_number)
{
struct loop_ivs *ivs = LOOP_IVS (loop);
struct iv_class *bl;
@ -2655,12 +2627,9 @@ find_splittable_regs (loop, unroll_type, unroll_number)
Return the number of instructions that set splittable registers. */
static int
find_splittable_givs (loop, bl, unroll_type, increment, unroll_number)
const struct loop *loop;
struct iv_class *bl;
enum unroll_types unroll_type;
rtx increment;
int unroll_number ATTRIBUTE_UNUSED;
find_splittable_givs (const struct loop *loop, struct iv_class *bl,
enum unroll_types unroll_type, rtx increment,
int unroll_number ATTRIBUTE_UNUSED)
{
struct loop_ivs *ivs = LOOP_IVS (loop);
struct induction *v, *v2;
@ -2894,9 +2863,7 @@ find_splittable_givs (loop, bl, unroll_type, increment, unroll_number)
it can search past if statements and other similar structures. */
static int
reg_dead_after_loop (loop, reg)
const struct loop *loop;
rtx reg;
reg_dead_after_loop (const struct loop *loop, rtx reg)
{
rtx insn, label;
enum rtx_code code;
@ -2966,9 +2933,7 @@ reg_dead_after_loop (loop, reg)
the end of the loop. If we can do it, return that value. */
rtx
final_biv_value (loop, bl)
const struct loop *loop;
struct iv_class *bl;
final_biv_value (const struct loop *loop, struct iv_class *bl)
{
unsigned HOST_WIDE_INT n_iterations = LOOP_INFO (loop)->n_iterations;
rtx increment, tem;
@ -3040,9 +3005,7 @@ final_biv_value (loop, bl)
the end of the loop. If we can do it, return that value. */
rtx
final_giv_value (loop, v)
const struct loop *loop;
struct induction *v;
final_giv_value (const struct loop *loop, struct induction *v)
{
struct loop_ivs *ivs = LOOP_IVS (loop);
struct iv_class *bl;
@ -3169,9 +3132,7 @@ final_giv_value (loop, v)
the SET_SRC of REG. */
static rtx
loop_find_equiv_value (loop, reg)
const struct loop *loop;
rtx reg;
loop_find_equiv_value (const struct loop *loop, rtx reg)
{
rtx loop_start = loop->start;
rtx insn, set;
@ -3224,8 +3185,7 @@ loop_find_equiv_value (loop, reg)
the proper form. */
static rtx
subtract_reg_term (op, reg)
rtx op, reg;
subtract_reg_term (rtx op, rtx reg)
{
if (op == reg)
return const0_rtx;
@ -3245,8 +3205,7 @@ subtract_reg_term (op, reg)
REG or a PLUS of a REG. */
static rtx
find_common_reg_term (op0, op1)
rtx op0, op1;
find_common_reg_term (rtx op0, rtx op1)
{
if ((GET_CODE (op0) == REG || GET_CODE (op0) == PLUS)
&& (GET_CODE (op1) == REG || GET_CODE (op1) == PLUS))
@ -3282,8 +3241,7 @@ find_common_reg_term (op0, op1)
be calculated, otherwise returns zero. */
unsigned HOST_WIDE_INT
loop_iterations (loop)
struct loop *loop;
loop_iterations (struct loop *loop)
{
struct loop_info *loop_info = LOOP_INFO (loop);
struct loop_ivs *ivs = LOOP_IVS (loop);
@ -3911,9 +3869,7 @@ loop_iterations (loop)
copying. */
static rtx
remap_split_bivs (loop, x)
struct loop *loop;
rtx x;
remap_split_bivs (struct loop *loop, rtx x)
{
struct loop_ivs *ivs = LOOP_IVS (loop);
enum rtx_code code;
@ -3981,12 +3937,8 @@ remap_split_bivs (loop, x)
must dominate LAST_UID. */
int
set_dominates_use (regno, first_uid, last_uid, copy_start, copy_end)
int regno;
int first_uid;
int last_uid;
rtx copy_start;
rtx copy_end;
set_dominates_use (int regno, int first_uid, int last_uid, rtx copy_start,
rtx copy_end)
{
int passed_jump = 0;
rtx p = NEXT_INSN (copy_start);
@ -4033,9 +3985,7 @@ set_dominates_use (regno, first_uid, last_uid, copy_start, copy_end)
deleted so that we execute the single iteration. */
static rtx
ujump_to_loop_cont (loop_start, loop_cont)
rtx loop_start;
rtx loop_cont;
ujump_to_loop_cont (rtx loop_start, rtx loop_cont)
{
rtx x, label, label_ref;

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
/* Virtual array support.
Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GCC.
@ -61,10 +62,8 @@ static const struct {
/* Allocate a virtual array with NUM_ELEMENT elements, each of which is
ELEMENT_SIZE bytes long, named NAME. Array elements are zeroed. */
varray_type
varray_init (num_elements, element_kind, name)
size_t num_elements;
enum varray_data_enum element_kind;
const char *name;
varray_init (size_t num_elements, enum varray_data_enum element_kind,
const char *name)
{
size_t data_size = num_elements * element[element_kind].size;
varray_type ptr;
@ -83,9 +82,7 @@ varray_init (num_elements, element_kind, name)
/* Grow/shrink the virtual array VA to N elements. Zero any new elements
allocated. */
varray_type
varray_grow (va, n)
varray_type va;
size_t n;
varray_grow (varray_type va, size_t n)
{
size_t old_elements = va->num_elements;
@ -109,8 +106,7 @@ varray_grow (va, n)
/* Reset a varray to its original state. */
void
varray_clear (va)
varray_type va;
varray_clear (varray_type va)
{
size_t data_size = element[va->type].size * va->num_elements;
@ -122,19 +118,15 @@ varray_clear (va)
#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
extern void error PARAMS ((const char *, ...)) ATTRIBUTE_PRINTF_1;
extern void error (const char *, ...) ATTRIBUTE_PRINTF_1;
void
varray_check_failed (va, n, file, line, function)
varray_type va;
size_t n;
const char *file;
int line;
const char *function;
varray_check_failed (varray_type va, size_t n, const char *file, int line,
const char *function)
{
internal_error ("virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d",
va->name, (unsigned long) va->num_elements, (unsigned long) n,
function, trim_filename (file), line);
function, trim_filename (file), line;
}
#endif

View File

@ -1,5 +1,6 @@
/* Virtual array support.
Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2002, 2003
Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GCC.
@ -56,7 +57,7 @@ struct const_equiv_data GTY(()) {
unsigned age;
};
/* Enum indicating what the varray contains.
/* Enum indicating what the varray contains.
If this is changed, `element' in varray.c needs to be updated. */
enum varray_data_enum {
@ -120,7 +121,7 @@ typedef union varray_data_tag GTY (()) {
struct reg_info_def *GTY ((length ("%0.num_elements"), skip (""),
tag ("VARRAY_DATA_REG"))) reg[1];
struct const_equiv_data GTY ((length ("%0.num_elements"),
tag ("VARRAY_DATA_CONST_EQUIV"))) const_equiv[1];
tag ("VARRAY_DATA_CONST_EQUIV"))) const_equiv[1];
struct basic_block_def *GTY ((length ("%0.num_elements"), skip (""),
tag ("VARRAY_DATA_BB"))) bb[1];
struct elt_list *GTY ((length ("%0.num_elements"),
@ -134,15 +135,14 @@ struct varray_head_tag GTY(()) {
using VARRAY_PUSH/VARRAY_POP. */
enum varray_data_enum type; /* The kind of elements in the varray. */
const char *name; /* name of the varray for reporting errors */
varray_data GTY ((desc ("%0.type"))) data; /* The data elements follow,
varray_data GTY ((desc ("%0.type"))) data; /* The data elements follow,
must be last. */
};
typedef struct varray_head_tag *varray_type;
/* Allocate a virtual array with NUM elements, each of which is SIZE bytes
long, named NAME. Array elements are zeroed. */
extern varray_type varray_init PARAMS ((size_t, enum varray_data_enum,
const char *));
extern varray_type varray_init (size_t, enum varray_data_enum, const char *);
#define VARRAY_CHAR_INIT(va, num, name) \
va = varray_init (num, VARRAY_DATA_C, name)
@ -210,7 +210,7 @@ extern varray_type varray_init PARAMS ((size_t, enum varray_data_enum,
do { if (vp) { free (vp); vp = (varray_type) 0; } } while (0)
/* Grow/shrink the virtual array VA to N elements. */
extern varray_type varray_grow PARAMS ((varray_type, size_t));
extern varray_type varray_grow (varray_type, size_t);
#define VARRAY_GROW(VA, N) ((VA) = varray_grow (VA, N))
@ -221,16 +221,15 @@ extern varray_type varray_grow PARAMS ((varray_type, size_t));
#define VARRAY_CLEAR(VA) varray_clear(VA)
extern void varray_clear PARAMS ((varray_type));
extern void varray_clear (varray_type);
/* Check for VARRAY_xxx macros being in bound. */
#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
extern void varray_check_failed PARAMS ((varray_type, size_t,
const char *, int,
const char *)) ATTRIBUTE_NORETURN;
extern void varray_check_failed (varray_type, size_t, const char *, int,
const char *) ATTRIBUTE_NORETURN;
#define VARRAY_CHECK(VA, N, T) __extension__ \
(*({ varray_type const _va = (VA); \
const size_t _n = (N); \
const size_t _n = (N); \
if (_n >= _va->num_elements) \
varray_check_failed (_va, _n, __FILE__, __LINE__, __FUNCTION__); \
&_va->data.T[_n]; }))

View File

@ -1,6 +1,6 @@
/* Output VMS debug format symbol table information from GCC.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002 Free Software Foundation, Inc.
1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Douglas B. Rupp (rupp@gnat.com).
This file is part of GCC.
@ -128,44 +128,43 @@ static unsigned int line_info_table_in_use;
#define LINE_INFO_TABLE_INCREMENT 1024
/* Forward declarations for functions defined in this file. */
static char *full_name PARAMS ((const char *));
static unsigned int lookup_filename PARAMS ((const char *));
static void addr_const_to_string PARAMS ((char *, rtx));
static int write_debug_header PARAMS ((DST_HEADER *, const char *, int));
static int write_debug_addr PARAMS ((char *, const char *, int));
static int write_debug_data1 PARAMS ((unsigned int, const char *, int));
static int write_debug_data2 PARAMS ((unsigned int, const char *, int));
static int write_debug_data4 PARAMS ((unsigned long, const char *, int));
static int write_debug_data8 PARAMS ((unsigned long long, const char *,
int));
static int write_debug_delta4 PARAMS ((char *, char *, const char *, int));
static int write_debug_string PARAMS ((char *, const char *, int));
static int write_modbeg PARAMS ((int));
static int write_modend PARAMS ((int));
static int write_rtnbeg PARAMS ((int, int));
static int write_rtnend PARAMS ((int, int));
static int write_pclines PARAMS ((int));
static int write_srccorr PARAMS ((int, dst_file_info_entry, int));
static int write_srccorrs PARAMS ((int));
static char *full_name (const char *);
static unsigned int lookup_filename (const char *);
static void addr_const_to_string (char *, rtx);
static int write_debug_header (DST_HEADER *, const char *, int);
static int write_debug_addr (char *, const char *, int);
static int write_debug_data1 (unsigned int, const char *, int);
static int write_debug_data2 (unsigned int, const char *, int);
static int write_debug_data4 (unsigned long, const char *, int);
static int write_debug_data8 (unsigned long long, const char *, int);
static int write_debug_delta4 (char *, char *, const char *, int);
static int write_debug_string (char *, const char *, int);
static int write_modbeg (int);
static int write_modend (int);
static int write_rtnbeg (int, int);
static int write_rtnend (int, int);
static int write_pclines (int);
static int write_srccorr (int, dst_file_info_entry, int);
static int write_srccorrs (int);
static void vmsdbgout_init PARAMS ((const char *));
static void vmsdbgout_finish PARAMS ((const char *));
static void vmsdbgout_define PARAMS ((unsigned int, const char *));
static void vmsdbgout_undef PARAMS ((unsigned int, const char *));
static void vmsdbgout_start_source_file PARAMS ((unsigned int, const char *));
static void vmsdbgout_end_source_file PARAMS ((unsigned int));
static void vmsdbgout_begin_block PARAMS ((unsigned int, unsigned int));
static void vmsdbgout_end_block PARAMS ((unsigned int, unsigned int));
static bool vmsdbgout_ignore_block PARAMS ((tree));
static void vmsdbgout_source_line PARAMS ((unsigned int, const char *));
static void vmsdbgout_begin_prologue PARAMS ((unsigned int, const char *));
static void vmsdbgout_end_prologue PARAMS ((unsigned int, const char *));
static void vmsdbgout_end_function PARAMS ((unsigned int));
static void vmsdbgout_end_epilogue PARAMS ((unsigned int, const char *));
static void vmsdbgout_begin_function PARAMS ((tree));
static void vmsdbgout_decl PARAMS ((tree));
static void vmsdbgout_global_decl PARAMS ((tree));
static void vmsdbgout_abstract_function PARAMS ((tree));
static void vmsdbgout_init (const char *);
static void vmsdbgout_finish (const char *);
static void vmsdbgout_define (unsigned int, const char *);
static void vmsdbgout_undef (unsigned int, const char *);
static void vmsdbgout_start_source_file (unsigned int, const char *);
static void vmsdbgout_end_source_file (unsigned int);
static void vmsdbgout_begin_block (unsigned int, unsigned int);
static void vmsdbgout_end_block (unsigned int, unsigned int);
static bool vmsdbgout_ignore_block (tree);
static void vmsdbgout_source_line (unsigned int, const char *);
static void vmsdbgout_begin_prologue (unsigned int, const char *);
static void vmsdbgout_end_prologue (unsigned int, const char *);
static void vmsdbgout_end_function (unsigned int);
static void vmsdbgout_end_epilogue (unsigned int, const char *);
static void vmsdbgout_begin_function (tree);
static void vmsdbgout_decl (tree);
static void vmsdbgout_global_decl (tree);
static void vmsdbgout_abstract_function (tree);
/* The debug hooks structure. */
@ -382,7 +381,7 @@ static char text_end_label[MAX_ARTIFICIAL_LABEL_BYTES];
macro has the same effect as ASM_OUTPUT_LABELREF, but copies to
a string rather than writing to a file. */
#ifndef ASM_NAME_TO_STRING
#define ASM_NAME_TO_STRING(STR, NAME) \
#define ASM_NAME_TO_STRING(STR, NAME) \
do \
{ \
if ((NAME)[0] == '*') \
@ -403,9 +402,7 @@ static char text_end_label[MAX_ARTIFICIAL_LABEL_BYTES];
directly, because it writes to a file. */
static void
addr_const_to_string (str, x)
char *str;
rtx x;
addr_const_to_string (char *str, rtx x)
{
char buf1[256];
char buf2[256];
@ -533,10 +530,7 @@ restart:
nonzero. */
static int
write_debug_header (header, comment, dosizeonly)
DST_HEADER *header;
const char *comment;
int dosizeonly;
write_debug_header (DST_HEADER *header, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
@ -565,10 +559,7 @@ write_debug_header (header, comment, dosizeonly)
nonzero. */
static int
write_debug_addr (symbol, comment, dosizeonly)
char *symbol;
const char *comment;
int dosizeonly;
write_debug_addr (char *symbol, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
@ -586,10 +577,7 @@ write_debug_addr (symbol, comment, dosizeonly)
nonzero. */
static int
write_debug_data1 (data1, comment, dosizeonly)
unsigned int data1;
const char *comment;
int dosizeonly;
write_debug_data1 (unsigned int data1, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
@ -607,10 +595,7 @@ write_debug_data1 (data1, comment, dosizeonly)
nonzero. */
static int
write_debug_data2 (data2, comment, dosizeonly)
unsigned int data2;
const char *comment;
int dosizeonly;
write_debug_data2 (unsigned int data2, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
@ -627,10 +612,7 @@ write_debug_data2 (data2, comment, dosizeonly)
Return the data size. Just return the size if DOSIZEONLY is nonzero. */
static int
write_debug_data4 (data4, comment, dosizeonly)
unsigned long data4;
const char *comment;
int dosizeonly;
write_debug_data4 (unsigned long data4, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
@ -647,10 +629,8 @@ write_debug_data4 (data4, comment, dosizeonly)
Return the data size. Just return the size if DOSIZEONLY is nonzero. */
static int
write_debug_data8 (data8, comment, dosizeonly)
unsigned long long data8;
const char *comment;
int dosizeonly;
write_debug_data8 (unsigned long long data8, const char *comment,
int dosizeonly)
{
if (!dosizeonly)
{
@ -668,11 +648,8 @@ write_debug_data8 (data8, comment, dosizeonly)
DOSIZEONLY is nonzero. */
static int
write_debug_delta4 (label1, label2, comment, dosizeonly)
char *label1;
char *label2;
const char *comment;
int dosizeonly;
write_debug_delta4 (char *label1, char *label2, const char *comment,
int dosizeonly)
{
if (!dosizeonly)
{
@ -690,10 +667,7 @@ write_debug_delta4 (label1, label2, comment, dosizeonly)
nonzero. */
static int
write_debug_string (string, comment, dosizeonly)
char *string;
const char *comment;
int dosizeonly;
write_debug_string (char *string, const char *comment, int dosizeonly)
{
if (!dosizeonly)
{
@ -710,8 +684,7 @@ write_debug_string (string, comment, dosizeonly)
size if DOSIZEONLY is nonzero. */
static int
write_modbeg (dosizeonly)
int dosizeonly;
write_modbeg (int dosizeonly)
{
DST_MODULE_BEGIN modbeg;
DST_MB_TRLR mb_trlr;
@ -774,8 +747,7 @@ write_modbeg (dosizeonly)
the size if DOSIZEONLY is nonzero. */
static int
write_modend (dosizeonly)
int dosizeonly;
write_modend (int dosizeonly)
{
DST_MODULE_END modend;
int totsize = 0;
@ -794,9 +766,7 @@ write_modend (dosizeonly)
Just return the size if DOSIZEONLY is nonzero. */
static int
write_rtnbeg (rtnnum, dosizeonly)
int rtnnum;
int dosizeonly;
write_rtnbeg (int rtnnum, int dosizeonly)
{
char *rtnname;
int rtnnamelen;
@ -889,9 +859,7 @@ write_rtnbeg (rtnnum, dosizeonly)
Just return the size if DOSIZEONLY is nonzero. */
static int
write_rtnend (rtnnum, dosizeonly)
int rtnnum;
int dosizeonly;
write_rtnend (int rtnnum, int dosizeonly)
{
DST_ROUTINE_END rtnend;
char label1[MAX_ARTIFICIAL_LABEL_BYTES];
@ -933,8 +901,7 @@ write_rtnend (rtnnum, dosizeonly)
the size if DOSIZEONLY is nonzero */
static int
write_pclines (dosizeonly)
int dosizeonly;
write_pclines (int dosizeonly)
{
unsigned i;
int fn;
@ -1064,10 +1031,8 @@ write_pclines (dosizeonly)
nonzero. */
static int
write_srccorr (fileid, file_info_entry, dosizeonly)
int fileid;
dst_file_info_entry file_info_entry;
int dosizeonly;
write_srccorr (int fileid, dst_file_info_entry file_info_entry,
int dosizeonly)
{
int src_command_size;
int linesleft = file_info_entry.max_line;
@ -1259,8 +1224,7 @@ write_srccorr (fileid, file_info_entry, dosizeonly)
the size if DOSIZEONLY is nonzero. */
static int
write_srccorrs (dosizeonly)
int dosizeonly;
write_srccorrs (int dosizeonly)
{
unsigned int i;
int totsize = 0;
@ -1275,9 +1239,7 @@ write_srccorrs (dosizeonly)
the prologue. */
static void
vmsdbgout_begin_prologue (line, file)
unsigned int line;
const char *file;
vmsdbgout_begin_prologue (unsigned int line, const char *file)
{
char label[MAX_ARTIFICIAL_LABEL_BYTES];
@ -1296,9 +1258,7 @@ vmsdbgout_begin_prologue (line, file)
the prologue. */
static void
vmsdbgout_end_prologue (line, file)
unsigned int line;
const char *file;
vmsdbgout_end_prologue (unsigned int line, const char *file)
{
char label[MAX_ARTIFICIAL_LABEL_BYTES];
@ -1319,8 +1279,7 @@ vmsdbgout_end_prologue (line, file)
/* No output for VMS debug, but make obligatory call to Dwarf2 debug */
static void
vmsdbgout_end_function (line)
unsigned int line;
vmsdbgout_end_function (unsigned int line)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.end_function) (line);
@ -1331,9 +1290,7 @@ vmsdbgout_end_function (line)
been generated. */
static void
vmsdbgout_end_epilogue (line, file)
unsigned int line;
const char *file;
vmsdbgout_end_epilogue (unsigned int line, const char *file)
{
char label[MAX_ARTIFICIAL_LABEL_BYTES];
@ -1357,9 +1314,7 @@ vmsdbgout_end_epilogue (line, file)
a lexical block. */
static void
vmsdbgout_begin_block (line, blocknum)
register unsigned line;
register unsigned blocknum;
vmsdbgout_begin_block (register unsigned line, register unsigned blocknum)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.begin_block) (line, blocknum);
@ -1372,9 +1327,7 @@ vmsdbgout_begin_block (line, blocknum)
lexical block. */
static void
vmsdbgout_end_block (line, blocknum)
register unsigned line;
register unsigned blocknum;
vmsdbgout_end_block (register unsigned line, register unsigned blocknum)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.end_block) (line, blocknum);
@ -1386,8 +1339,7 @@ vmsdbgout_end_block (line, blocknum)
/* Not implemented in VMS Debug. */
static bool
vmsdbgout_ignore_block (block)
tree block;
vmsdbgout_ignore_block (tree block)
{
bool retval = 0;
@ -1400,8 +1352,7 @@ vmsdbgout_ignore_block (block)
/* Add an entry for function DECL into the func_table. */
static void
vmsdbgout_begin_function (decl)
tree decl;
vmsdbgout_begin_function (tree decl)
{
const char *name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
@ -1425,8 +1376,7 @@ static char fullname_buff [4096];
in VMS syntax in order to be processed by VMS Debug. */
static char *
full_name (filename)
const char *filename;
full_name (const char *filename)
{
#ifdef VMS
FILE *fp = fopen (filename, "r");
@ -1457,8 +1407,7 @@ full_name (filename)
all searches. */
static unsigned int
lookup_filename (file_name)
const char *file_name;
lookup_filename (const char *file_name)
{
static unsigned int last_file_lookup_index = 0;
register char *fn;
@ -1556,9 +1505,7 @@ lookup_filename (file_name)
'line_info_table' for later output of the .debug_line section. */
static void
vmsdbgout_source_line (line, filename)
register unsigned line;
register const char *filename;
vmsdbgout_source_line (register unsigned line, register const char *filename)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.source_line) (line, filename);
@ -1593,9 +1540,7 @@ vmsdbgout_source_line (line, filename)
At present, unimplemented. */
static void
vmsdbgout_start_source_file (lineno, filename)
unsigned int lineno;
const char *filename;
vmsdbgout_start_source_file (unsigned int lineno, const char *filename)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.start_source_file) (lineno, filename);
@ -1605,8 +1550,7 @@ vmsdbgout_start_source_file (lineno, filename)
At present, unimplemented. */
static void
vmsdbgout_end_source_file (lineno)
unsigned int lineno ATTRIBUTE_UNUSED;
vmsdbgout_end_source_file (unsigned int lineno ATTRIBUTE_UNUSED)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.end_source_file) (lineno);
@ -1615,8 +1559,7 @@ vmsdbgout_end_source_file (lineno)
/* Set up for Debug output at the start of compilation. */
static void
vmsdbgout_init (main_input_filename)
const char *main_input_filename;
vmsdbgout_init (const char *main_input_filename)
{
const char *language_string = lang_hooks.name;
@ -1672,9 +1615,7 @@ vmsdbgout_init (main_input_filename)
/* Not implemented in VMS Debug. */
static void
vmsdbgout_define (lineno, buffer)
unsigned int lineno;
const char *buffer;
vmsdbgout_define (unsigned int lineno, const char *buffer)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.define) (lineno, buffer);
@ -1683,9 +1624,7 @@ vmsdbgout_define (lineno, buffer)
/* Not implemented in VMS Debug. */
static void
vmsdbgout_undef (lineno, buffer)
unsigned int lineno;
const char *buffer;
vmsdbgout_undef (unsigned int lineno, const char *buffer)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.undef) (lineno, buffer);
@ -1694,8 +1633,7 @@ vmsdbgout_undef (lineno, buffer)
/* Not implemented in VMS Debug. */
static void
vmsdbgout_decl (decl)
tree decl;
vmsdbgout_decl (tree decl)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.function_decl) (decl);
@ -1704,8 +1642,7 @@ vmsdbgout_decl (decl)
/* Not implemented in VMS Debug. */
static void
vmsdbgout_global_decl (decl)
tree decl;
vmsdbgout_global_decl (tree decl)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.global_decl) (decl);
@ -1714,8 +1651,7 @@ vmsdbgout_global_decl (decl)
/* Not implemented in VMS Debug. */
static void
vmsdbgout_abstract_function (decl)
tree decl;
vmsdbgout_abstract_function (tree decl)
{
if (write_symbols == VMS_AND_DWARF2_DEBUG)
(*dwarf2_debug_hooks.outlining_inline_function) (decl);
@ -1725,8 +1661,7 @@ vmsdbgout_abstract_function (decl)
VMS Debug debugging info. */
static void
vmsdbgout_finish (main_input_filename)
const char *main_input_filename ATTRIBUTE_UNUSED;
vmsdbgout_finish (const char *main_input_filename ATTRIBUTE_UNUSED)
{
unsigned int i;
int totsize;

View File

@ -1,5 +1,5 @@
/* Output xcoff-format symbol table information from GNU compiler.
Copyright (C) 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2002
Copyright (C) 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2002, 2003
Free Software Foundation, Inc.
This file is part of GCC.
@ -98,7 +98,7 @@ const char *xcoff_lastfile;
? xcoff_current_include_file : main_input_filename); \
}
#define ASM_OUTPUT_LFE(FILE,LINENUM) \
#define ASM_OUTPUT_LFE(FILE,LINENUM) \
do \
{ \
fprintf (FILE, "\t.ef\t%d\n", (LINENUM)); \
@ -112,9 +112,9 @@ const char *xcoff_lastfile;
#define ASM_OUTPUT_LBE(FILE,LINENUM,BLOCKNUM) \
fprintf (FILE, "\t.eb\t%d\n", ABS_OR_RELATIVE_LINENO (LINENUM))
static void assign_type_number PARAMS ((tree, const char *, int));
static void xcoffout_block PARAMS ((tree, int, tree));
static void xcoffout_source_file PARAMS ((FILE *, const char *, int));
static void assign_type_number (tree, const char *, int);
static void xcoffout_block (tree, int, tree);
static void xcoffout_source_file (FILE *, const char *, int);
/* Support routines for XCOFF debugging info. */
@ -122,10 +122,7 @@ static void xcoffout_source_file PARAMS ((FILE *, const char *, int));
Search all decls in the list SYMS to find the type NAME. */
static void
assign_type_number (syms, name, number)
tree syms;
const char *name;
int number;
assign_type_number (tree syms, const char *name, int number)
{
tree decl;
@ -142,8 +139,7 @@ assign_type_number (syms, name, number)
possible. */
void
xcoff_output_standard_types (syms)
tree syms;
xcoff_output_standard_types (tree syms)
{
/* Handle built-in C types here. */
@ -179,8 +175,7 @@ xcoff_output_standard_types (syms)
/* Conversion routine from BSD stabs to AIX storage classes. */
int
stab_to_sclass (stab)
int stab;
stab_to_sclass (int stab)
{
switch (stab)
{
@ -282,10 +277,7 @@ stab_to_sclass (stab)
INLINE_P is true if this is from an inlined function. */
static void
xcoffout_source_file (file, filename, inline_p)
FILE *file;
const char *filename;
int inline_p;
xcoffout_source_file (FILE *file, const char *filename, int inline_p)
{
if (filename
&& (xcoff_lastfile == 0 || strcmp (filename, xcoff_lastfile)
@ -314,9 +306,7 @@ xcoffout_source_file (file, filename, inline_p)
/* Output a line number symbol entry for location (FILENAME, LINE). */
void
xcoffout_source_line (line, filename)
unsigned int line;
const char *filename;
xcoffout_source_line (unsigned int line, const char *filename)
{
bool inline_p = (strcmp (xcoff_current_function_file, filename) != 0
|| (int) line < xcoff_begin_function_line);
@ -334,10 +324,7 @@ xcoffout_source_line (line, filename)
static int do_block = 0;
static void
xcoffout_block (block, depth, args)
tree block;
int depth;
tree args;
xcoffout_block (tree block, int depth, tree args)
{
while (block)
{
@ -376,9 +363,7 @@ xcoffout_block (block, depth, args)
if the count starts at 0 for the outermost one. */
void
xcoffout_begin_block (line, n)
unsigned int line;
unsigned int n;
xcoffout_begin_block (unsigned int line, unsigned int n)
{
tree decl = current_function_decl;
@ -394,9 +379,7 @@ xcoffout_begin_block (line, n)
/* Describe the end line-number of an internal block within a function. */
void
xcoffout_end_block (line, n)
unsigned int line;
unsigned int n;
xcoffout_end_block (unsigned int line, unsigned int n)
{
if (n != 1)
ASM_OUTPUT_LBE (asm_out_file, line, n);
@ -406,10 +389,7 @@ xcoffout_end_block (line, n)
Declare function as needed for debugging. */
void
xcoffout_declare_function (file, decl, name)
FILE *file;
tree decl;
const char *name;
xcoffout_declare_function (FILE *file, tree decl, const char *name)
{
int i;
@ -446,9 +426,8 @@ xcoffout_declare_function (file, decl, name)
Record the file name that this function is contained in. */
void
xcoffout_begin_prologue (line, file)
unsigned int line;
const char *file ATTRIBUTE_UNUSED;
xcoffout_begin_prologue (unsigned int line,
const char *file ATTRIBUTE_UNUSED)
{
ASM_OUTPUT_LFB (asm_out_file, line);
dbxout_parms (DECL_ARGUMENTS (current_function_decl));
@ -468,8 +447,7 @@ xcoffout_begin_prologue (line, file)
Describe end of outermost block. */
void
xcoffout_end_function (last_linenum)
unsigned int last_linenum;
xcoffout_end_function (unsigned int last_linenum)
{
ASM_OUTPUT_LFE (asm_out_file, last_linenum);
}
@ -478,9 +456,8 @@ xcoffout_end_function (last_linenum)
Called after the epilogue is output. */
void
xcoffout_end_epilogue (line, file)
unsigned int line ATTRIBUTE_UNUSED;
const char *file ATTRIBUTE_UNUSED;
xcoffout_end_epilogue (unsigned int line ATTRIBUTE_UNUSED,
const char *file ATTRIBUTE_UNUSED)
{
/* We need to pass the correct function size to .function, otherwise,
the xas assembler can't figure out the correct size for the function

View File

@ -1,6 +1,7 @@
/* XCOFF definitions. These are needed in dbxout.c, final.c,
and xcoffout.h.
Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
Copyright (C) 1998, 2000, 2002, 2003
Free Software Foundation, Inc.
This file is part of GCC.
@ -181,27 +182,24 @@ extern const char *xcoff_lastfile;
/* Prototype functions in xcoffout.c. */
extern int stab_to_sclass PARAMS ((int));
extern int stab_to_sclass (int);
#ifdef BUFSIZ
extern void xcoffout_begin_prologue PARAMS ((unsigned int,
const char *));
extern void xcoffout_begin_block PARAMS ((unsigned, unsigned));
extern void xcoffout_end_epilogue PARAMS ((unsigned int,
const char *));
extern void xcoffout_end_function PARAMS ((unsigned int));
extern void xcoffout_end_block PARAMS ((unsigned, unsigned));
extern void xcoffout_begin_prologue (unsigned int, const char *);
extern void xcoffout_begin_block (unsigned, unsigned);
extern void xcoffout_end_epilogue (unsigned int, const char *);
extern void xcoffout_end_function (unsigned int);
extern void xcoffout_end_block (unsigned, unsigned);
#endif /* BUFSIZ */
#ifdef TREE_CODE
extern void xcoff_output_standard_types PARAMS ((tree));
extern void xcoff_output_standard_types (tree);
#ifdef BUFSIZ
extern void xcoffout_declare_function PARAMS ((FILE *, tree, const char *));
extern void xcoffout_declare_function (FILE *, tree, const char *);
#endif /* BUFSIZ */
#endif /* TREE_CODE */
#ifdef RTX_CODE
#ifdef BUFSIZ
extern void xcoffout_source_line PARAMS ((unsigned int,
const char *));
extern void xcoffout_source_line (unsigned int, const char *);
#endif /* BUFSIZ */
#endif /* RTX_CODE */