Commit 7080f735 by Andreas Jaeger Committed by Andreas Jaeger

cse.c: Convert prototypes to ISO C90.

	* cse.c: Convert prototypes to ISO C90.
	* cselib.c: Likewise.
	* cselib.h: Likewise.
	* dbxout.c: Likewise.
	* debug.c: Likewise.
	* df.c: Likewise.
	* df.h: Likewise.
	* dojump.c: Likewise.
	* doloop.c: Likewise.
	* dominance.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarf2out.h: Likewise.
	* dwarfout.c: Likewise.

From-SVN: r68673
parent f9da5064
2003-06-29 Andreas Jaeger <aj@suse.de>
* cse.c: Convert prototypes to ISO C90.
* cselib.c: Likewise.
* cselib.h: Likewise.
* dbxout.c: Likewise.
* debug.c: Likewise.
* df.c: Likewise.
* df.h: Likewise.
* dojump.c: Likewise.
* doloop.c: Likewise.
* dominance.c: Likewise.
* dwarf2asm.c: Likewise.
* dwarf2out.c: Likewise.
* dwarf2out.h: Likewise.
* dwarfout.c: Likewise.
2003-06-29 Kazu Hirata <kazu@cs.umass.edu>
* alloc-pool.c: Fix comment formatting.
......
......@@ -62,12 +62,12 @@ struct elt_list GTY(())
cselib_val *elt;
};
extern cselib_val *cselib_lookup PARAMS ((rtx, enum machine_mode, int));
extern void cselib_update_varray_sizes PARAMS ((void));
extern void cselib_init PARAMS ((void));
extern void cselib_finish PARAMS ((void));
extern void cselib_process_insn PARAMS ((rtx));
extern enum machine_mode cselib_reg_set_mode PARAMS ((rtx));
extern int rtx_equal_for_cselib_p PARAMS ((rtx, rtx));
extern int references_value_p PARAMS ((rtx, int));
extern rtx cselib_subst_to_values PARAMS ((rtx));
extern cselib_val *cselib_lookup (rtx, enum machine_mode, int);
extern void cselib_update_varray_sizes (void);
extern void cselib_init (void);
extern void cselib_finish (void);
extern void cselib_process_insn (rtx);
extern enum machine_mode cselib_reg_set_mode (rtx);
extern int rtx_equal_for_cselib_p (rtx, rtx);
extern int references_value_p (rtx, int);
extern rtx cselib_subst_to_values (rtx);
/* Do-nothing debug hooks for GCC.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
......@@ -51,51 +51,44 @@ const struct gcc_debug_hooks do_nothing_debug_hooks =
nothing. */
void
debug_nothing_void ()
debug_nothing_void (void)
{
}
void
debug_nothing_tree (decl)
tree decl ATTRIBUTE_UNUSED;
debug_nothing_tree (tree decl ATTRIBUTE_UNUSED)
{
}
bool
debug_true_tree (block)
tree block ATTRIBUTE_UNUSED;
debug_true_tree (tree block ATTRIBUTE_UNUSED)
{
return true;
}
void
debug_nothing_rtx (insn)
rtx insn ATTRIBUTE_UNUSED;
debug_nothing_rtx (rtx insn ATTRIBUTE_UNUSED)
{
}
void
debug_nothing_charstar (main_filename)
const char *main_filename ATTRIBUTE_UNUSED;
debug_nothing_charstar (const char *main_filename ATTRIBUTE_UNUSED)
{
}
void
debug_nothing_int_charstar (line, text)
unsigned int line ATTRIBUTE_UNUSED;
const char *text ATTRIBUTE_UNUSED;
debug_nothing_int_charstar (unsigned int line ATTRIBUTE_UNUSED,
const char *text ATTRIBUTE_UNUSED)
{
}
void
debug_nothing_int (line)
unsigned int line ATTRIBUTE_UNUSED;
debug_nothing_int (unsigned int line ATTRIBUTE_UNUSED)
{
}
void
debug_nothing_int_int (line, n)
unsigned int line ATTRIBUTE_UNUSED;
unsigned int n ATTRIBUTE_UNUSED;
debug_nothing_int_int (unsigned int line ATTRIBUTE_UNUSED,
unsigned int n ATTRIBUTE_UNUSED)
{
}
/* Form lists of pseudo register references for autoinc optimization
for GNU compiler. This is part of flow optimization.
for GNU compiler. This is part of flow optimization.
Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
......@@ -51,7 +51,7 @@ enum df_ref_flags
these are marked with this flag to show that they are not
independent. */
DF_REF_READ_WRITE = 1,
/* This flag is set on register references inside a subreg on
machines which have CANNOT_CHANGE_MODE_CLASS.
Note, that this flag can also be set on df_refs representing
......@@ -157,7 +157,7 @@ struct df
bitmap insns_modified; /* Insns that (may) have changed. */
bitmap bbs_modified; /* Blocks that (may) have changed. */
bitmap all_blocks; /* All blocks in CFG. */
/* The sbitmap vector of dominators or NULL if not computed.
/* The sbitmap vector of dominators or NULL if not computed.
Ideally, this should be a pointer to a CFG object. */
sbitmap *dom;
int *dfs_order; /* DFS order -> block number. */
......@@ -231,96 +231,87 @@ struct df_map
/* Functions to build and analyse dataflow information. */
extern struct df *df_init PARAMS ((void));
extern struct df *df_init (void);
extern int df_analyse PARAMS ((struct df *, bitmap, int));
extern int df_analyse (struct df *, bitmap, int);
extern void df_finish PARAMS ((struct df *));
extern void df_finish (struct df *);
extern void df_dump PARAMS ((struct df *, int, FILE *));
extern void df_dump (struct df *, int, FILE *);
/* Functions to modify insns. */
extern void df_insn_modify PARAMS ((struct df *, basic_block, rtx));
extern void df_insn_modify (struct df *, basic_block, rtx);
extern rtx df_insn_delete PARAMS ((struct df *, basic_block, rtx));
extern rtx df_insn_delete (struct df *, basic_block, rtx);
extern rtx df_pattern_emit_before PARAMS ((struct df *, rtx,
basic_block, rtx));
extern rtx df_pattern_emit_before (struct df *, rtx, basic_block, rtx);
extern rtx df_jump_pattern_emit_after PARAMS ((struct df *, rtx,
basic_block, rtx));
extern rtx df_jump_pattern_emit_after (struct df *, rtx, basic_block, rtx);
extern rtx df_pattern_emit_after PARAMS ((struct df *, rtx,
basic_block, rtx));
extern rtx df_pattern_emit_after (struct df *, rtx, basic_block, rtx);
extern rtx df_insn_move_before PARAMS ((struct df *, basic_block, rtx,
basic_block, rtx));
extern rtx df_insn_move_before (struct df *, basic_block, rtx, basic_block,
rtx);
extern int df_reg_replace PARAMS ((struct df *, bitmap, rtx, rtx));
extern int df_reg_replace (struct df *, bitmap, rtx, rtx);
extern int df_ref_reg_replace PARAMS ((struct df *, struct ref *, rtx, rtx));
extern int df_ref_reg_replace (struct df *, struct ref *, rtx, rtx);
extern int df_ref_remove PARAMS ((struct df *, struct ref *));
extern int df_ref_remove (struct df *, struct ref *);
extern int df_insn_reg_replace PARAMS ((struct df *, basic_block,
rtx, rtx, rtx));
extern int df_insn_reg_replace (struct df *, basic_block, rtx, rtx, rtx);
extern int df_insn_mem_replace PARAMS ((struct df *, basic_block,
rtx, rtx, rtx));
extern int df_insn_mem_replace (struct df *, basic_block, rtx, rtx, rtx);
extern struct ref *df_bb_def_use_swap PARAMS ((struct df *, basic_block,
rtx, rtx, unsigned int));
extern struct ref *df_bb_def_use_swap (struct df *, basic_block, rtx, rtx,
unsigned int);
/* Functions to query dataflow information. */
extern basic_block df_regno_bb PARAMS((struct df *, unsigned int));
extern basic_block df_regno_bb (struct df *, unsigned int);
extern int df_reg_lifetime PARAMS ((struct df *, rtx));
extern int df_reg_lifetime (struct df *, rtx);
extern int df_reg_global_p PARAMS ((struct df *, rtx));
extern int df_reg_global_p (struct df *, rtx);
extern int df_insn_regno_def_p PARAMS ((struct df *,
basic_block, rtx, unsigned int));
extern int df_insn_regno_def_p (struct df *, basic_block, rtx, unsigned int);
extern int df_insn_dominates_all_uses_p PARAMS ((struct df *,
basic_block, rtx));
extern int df_insn_dominates_all_uses_p (struct df *, basic_block, rtx);
extern int df_insn_dominates_uses_p PARAMS ((struct df *, basic_block,
rtx, bitmap));
extern int df_insn_dominates_uses_p (struct df *, basic_block, rtx, bitmap);
extern int df_bb_reg_live_start_p PARAMS ((struct df *, basic_block, rtx));
extern int df_bb_reg_live_start_p (struct df *, basic_block, rtx);
extern int df_bb_reg_live_end_p PARAMS ((struct df *, basic_block, rtx));
extern int df_bb_reg_live_end_p (struct df *, basic_block, rtx);
extern int df_bb_regs_lives_compare PARAMS ((struct df *, basic_block,
rtx, rtx));
extern int df_bb_regs_lives_compare (struct df *, basic_block, rtx, rtx);
extern rtx df_bb_single_def_use_insn_find PARAMS((struct df *, basic_block,
rtx, rtx));
extern rtx df_bb_single_def_use_insn_find (struct df *, basic_block, rtx,
rtx);
/* Functions for debugging from GDB. */
extern void debug_df_insn PARAMS ((rtx));
extern void debug_df_insn (rtx);
extern void debug_df_regno PARAMS ((unsigned int));
extern void debug_df_regno (unsigned int);
extern void debug_df_reg PARAMS ((rtx));
extern void debug_df_reg (rtx);
extern void debug_df_defno PARAMS ((unsigned int));
extern void debug_df_defno (unsigned int);
extern void debug_df_useno PARAMS ((unsigned int));
extern void debug_df_useno (unsigned int);
extern void debug_df_ref PARAMS ((struct ref *));
extern void debug_df_ref (struct ref *);
extern void debug_df_chain PARAMS ((struct df_link *));
extern void debug_df_chain (struct df_link *);
extern void df_insn_debug PARAMS ((struct df *, rtx, FILE *));
extern void df_insn_debug (struct df *, rtx, FILE *);
extern void df_insn_debug_regno PARAMS ((struct df *, rtx, FILE *));
extern void df_insn_debug_regno (struct df *, rtx, FILE *);
/* Meet over any path (UNION) or meet over all paths (INTERSECTION). */
......@@ -339,23 +330,22 @@ enum df_flow_dir
};
typedef void (*transfer_function_sbitmap) PARAMS ((int, int *, sbitmap, sbitmap,
sbitmap, sbitmap, void *));
typedef void (*transfer_function_sbitmap) (int, int *, sbitmap, sbitmap,
sbitmap, sbitmap, void *);
typedef void (*transfer_function_bitmap) PARAMS ((int, int *, bitmap, bitmap,
bitmap, bitmap, void *));
typedef void (*transfer_function_bitmap) (int, int *, bitmap, bitmap,
bitmap, bitmap, void *);
extern void iterative_dataflow_sbitmap PARAMS ((sbitmap *, sbitmap *,
sbitmap *, sbitmap *,
bitmap, enum df_flow_dir,
enum df_confluence_op,
transfer_function_sbitmap,
int *, void *));
extern void iterative_dataflow_sbitmap (sbitmap *, sbitmap *, sbitmap *,
sbitmap *, bitmap, enum df_flow_dir,
enum df_confluence_op,
transfer_function_sbitmap,
int *, void *);
extern void iterative_dataflow_bitmap PARAMS ((bitmap *, bitmap *, bitmap *,
bitmap *, bitmap,
enum df_flow_dir,
enum df_confluence_op,
transfer_function_bitmap,
int *, void *));
extern bool read_modify_subreg_p PARAMS ((rtx));
extern void iterative_dataflow_bitmap (bitmap *, bitmap *, bitmap *,
bitmap *, bitmap,
enum df_flow_dir,
enum df_confluence_op,
transfer_function_bitmap,
int *, void *);
extern bool read_modify_subreg_p (rtx);
......@@ -34,16 +34,16 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "optabs.h"
#include "langhooks.h"
static void do_jump_by_parts_greater PARAMS ((tree, int, rtx, rtx));
static void do_jump_by_parts_equality PARAMS ((tree, rtx, rtx));
static void do_compare_and_jump PARAMS ((tree, enum rtx_code, enum rtx_code,
rtx, rtx));
static void do_jump_by_parts_greater (tree, int, rtx, rtx);
static void do_jump_by_parts_equality (tree, rtx, rtx);
static void do_compare_and_jump (tree, enum rtx_code, enum rtx_code, rtx,
rtx);
/* At the start of a function, record that we have no previously-pushed
arguments waiting to be popped. */
void
init_pending_stack_adjust ()
init_pending_stack_adjust (void)
{
pending_stack_adjust = 0;
}
......@@ -55,7 +55,7 @@ init_pending_stack_adjust ()
frame pointer regardless of the value of flag_omit_frame_pointer. */
void
clear_pending_stack_adjust ()
clear_pending_stack_adjust (void)
{
#ifdef EXIT_IGNORE_STACK
if (optimize > 0
......@@ -73,7 +73,7 @@ clear_pending_stack_adjust ()
/* Pop any previously-pushed arguments that have not been popped yet. */
void
do_pending_stack_adjust ()
do_pending_stack_adjust (void)
{
if (inhibit_defer_pop == 0)
{
......@@ -90,9 +90,7 @@ do_pending_stack_adjust ()
functions here. */
void
jumpifnot (exp, label)
tree exp;
rtx label;
jumpifnot (tree exp, rtx label)
{
do_jump (exp, label, NULL_RTX);
}
......@@ -100,9 +98,7 @@ jumpifnot (exp, label)
/* Generate code to evaluate EXP and jump to LABEL if the value is nonzero. */
void
jumpif (exp, label)
tree exp;
rtx label;
jumpif (tree exp, rtx label)
{
do_jump (exp, NULL_RTX, label);
}
......@@ -120,9 +116,7 @@ jumpif (exp, label)
&&, || and comparison operators in EXP. */
void
do_jump (exp, if_false_label, if_true_label)
tree exp;
rtx if_false_label, if_true_label;
do_jump (tree exp, rtx if_false_label, rtx if_true_label)
{
enum tree_code code = TREE_CODE (exp);
/* Some cases need to create a label to jump to
......@@ -617,10 +611,8 @@ do_jump (exp, if_false_label, if_true_label)
and LT if SWAP is 1. */
static void
do_jump_by_parts_greater (exp, swap, if_false_label, if_true_label)
tree exp;
int swap;
rtx if_false_label, if_true_label;
do_jump_by_parts_greater (tree exp, int swap, rtx if_false_label,
rtx if_true_label)
{
rtx op0 = expand_expr (TREE_OPERAND (exp, swap), NULL_RTX, VOIDmode, 0);
rtx op1 = expand_expr (TREE_OPERAND (exp, !swap), NULL_RTX, VOIDmode, 0);
......@@ -635,11 +627,8 @@ do_jump_by_parts_greater (exp, swap, if_false_label, if_true_label)
Jump to IF_TRUE_LABEL if OP0 is greater, IF_FALSE_LABEL otherwise. */
void
do_jump_by_parts_greater_rtx (mode, unsignedp, op0, op1, if_false_label, if_true_label)
enum machine_mode mode;
int unsignedp;
rtx op0, op1;
rtx if_false_label, if_true_label;
do_jump_by_parts_greater_rtx (enum machine_mode mode, int unsignedp, rtx op0,
rtx op1, rtx if_false_label, rtx if_true_label)
{
int nwords = (GET_MODE_SIZE (mode) / UNITS_PER_WORD);
rtx drop_through_label = 0;
......@@ -688,9 +677,7 @@ do_jump_by_parts_greater_rtx (mode, unsignedp, op0, op1, if_false_label, if_true
with one insn, test the comparison and jump to the appropriate label. */
static void
do_jump_by_parts_equality (exp, if_false_label, if_true_label)
tree exp;
rtx if_false_label, if_true_label;
do_jump_by_parts_equality (tree exp, rtx if_false_label, rtx if_true_label)
{
rtx op0 = expand_expr (TREE_OPERAND (exp, 0), NULL_RTX, VOIDmode, 0);
rtx op1 = expand_expr (TREE_OPERAND (exp, 1), NULL_RTX, VOIDmode, 0);
......@@ -719,9 +706,7 @@ do_jump_by_parts_equality (exp, if_false_label, if_true_label)
for the available compare insns. */
void
do_jump_by_parts_equality_rtx (op0, if_false_label, if_true_label)
rtx op0;
rtx if_false_label, if_true_label;
do_jump_by_parts_equality_rtx (rtx op0, rtx if_false_label, rtx if_true_label)
{
int nwords = GET_MODE_SIZE (GET_MODE (op0)) / UNITS_PER_WORD;
rtx part;
......@@ -776,12 +761,8 @@ do_jump_by_parts_equality_rtx (op0, if_false_label, if_true_label)
compared. */
rtx
compare_from_rtx (op0, op1, code, unsignedp, mode, size)
rtx op0, op1;
enum rtx_code code;
int unsignedp;
enum machine_mode mode;
rtx size;
compare_from_rtx (rtx op0, rtx op1, enum rtx_code code, int unsignedp,
enum machine_mode mode, rtx size)
{
enum rtx_code ucode;
rtx tem;
......@@ -847,14 +828,9 @@ compare_from_rtx (op0, op1, code, unsignedp, mode, size)
compared. */
void
do_compare_rtx_and_jump (op0, op1, code, unsignedp, mode, size,
if_false_label, if_true_label)
rtx op0, op1;
enum rtx_code code;
int unsignedp;
enum machine_mode mode;
rtx size;
rtx if_false_label, if_true_label;
do_compare_rtx_and_jump (rtx op0, rtx op1, enum rtx_code code, int unsignedp,
enum machine_mode mode, rtx size, rtx if_false_label,
rtx if_true_label)
{
enum rtx_code ucode;
rtx tem;
......@@ -952,11 +928,9 @@ do_compare_rtx_and_jump (op0, op1, code, unsignedp, mode, size,
things pushed on the stack that aren't yet used. */
static void
do_compare_and_jump (exp, signed_code, unsigned_code, if_false_label,
if_true_label)
tree exp;
enum rtx_code signed_code, unsigned_code;
rtx if_false_label, if_true_label;
do_compare_and_jump (tree exp, enum rtx_code signed_code,
enum rtx_code unsigned_code, rtx if_false_label,
rtx if_true_label)
{
rtx op0, op1;
tree type;
......
/* Perform doloop optimizations
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
This file is part of GCC.
......@@ -59,23 +60,19 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifdef HAVE_doloop_end
static rtx doloop_condition_get
PARAMS ((rtx));
static unsigned HOST_WIDE_INT doloop_iterations_max
PARAMS ((const struct loop_info *, enum machine_mode, int));
static int doloop_valid_p
PARAMS ((const struct loop *, rtx));
static int doloop_modify
PARAMS ((const struct loop *, rtx, rtx, rtx, rtx, rtx));
static int doloop_modify_runtime
PARAMS ((const struct loop *, rtx, rtx, rtx, enum machine_mode, rtx));
static rtx doloop_condition_get (rtx);
static unsigned HOST_WIDE_INT doloop_iterations_max (const struct loop_info *,
enum machine_mode, int);
static int doloop_valid_p (const struct loop *, rtx);
static int doloop_modify (const struct loop *, rtx, rtx, rtx, rtx, rtx);
static int doloop_modify_runtime (const struct loop *, rtx, rtx, rtx,
enum machine_mode, rtx);
/* Return the loop termination condition for PATTERN or zero
if it is not a decrement and branch jump insn. */
static rtx
doloop_condition_get (pattern)
rtx pattern;
doloop_condition_get (rtx pattern)
{
rtx cmp;
rtx inc;
......@@ -146,10 +143,8 @@ doloop_condition_get (pattern)
MODE is the mode of the iteration count and NONNEG is nonzero if
the iteration count has been proved to be non-negative. */
static unsigned HOST_WIDE_INT
doloop_iterations_max (loop_info, mode, nonneg)
const struct loop_info *loop_info;
enum machine_mode mode;
int nonneg;
doloop_iterations_max (const struct loop_info *loop_info,
enum machine_mode mode, int nonneg)
{
unsigned HOST_WIDE_INT n_iterations_max;
enum rtx_code code;
......@@ -255,9 +250,7 @@ doloop_iterations_max (loop_info, mode, nonneg)
/* Return nonzero if the loop specified by LOOP is suitable for
the use of special low-overhead looping instructions. */
static int
doloop_valid_p (loop, jump_insn)
const struct loop *loop;
rtx jump_insn;
doloop_valid_p (const struct loop *loop, rtx jump_insn)
{
const struct loop_info *loop_info = LOOP_INFO (loop);
......@@ -405,14 +398,8 @@ doloop_valid_p (loop, jump_insn)
low-overhead looping insn to emit at the end of the loop. This
returns nonzero if it was successful. */
static int
doloop_modify (loop, iterations, iterations_max,
doloop_seq, start_label, condition)
const struct loop *loop;
rtx iterations;
rtx iterations_max;
rtx doloop_seq;
rtx start_label;
rtx condition;
doloop_modify (const struct loop *loop, rtx iterations, rtx iterations_max,
rtx doloop_seq, rtx start_label, rtx condition)
{
rtx counter_reg;
rtx count;
......@@ -545,14 +532,9 @@ doloop_modify (loop, iterations, iterations_max,
number of loop iterations. DOLOOP_INSN is the low-overhead looping
insn to insert. Returns nonzero if loop successfully modified. */
static int
doloop_modify_runtime (loop, iterations_max,
doloop_seq, start_label, mode, condition)
const struct loop *loop;
rtx iterations_max;
rtx doloop_seq;
rtx start_label;
enum machine_mode mode;
rtx condition;
doloop_modify_runtime (const struct loop *loop, rtx iterations_max,
rtx doloop_seq, rtx start_label,
enum machine_mode mode, rtx condition)
{
const struct loop_info *loop_info = LOOP_INFO (loop);
HOST_WIDE_INT abs_inc;
......@@ -759,8 +741,7 @@ doloop_modify_runtime (loop, iterations_max,
is a candidate for this optimization. Returns nonzero if loop
successfully modified. */
int
doloop_optimize (loop)
const struct loop *loop;
doloop_optimize (const struct loop *loop)
{
struct loop_info *loop_info = LOOP_INFO (loop);
rtx initial_value;
......
/* Calculate (post)dominators in slightly super-linear time.
Copyright (C) 2000 Free Software Foundation, Inc.
Copyright (C) 2000, 2003 Free Software Foundation, Inc.
Contributed by Michael Matz (matz@ifh.de).
This file is part of GCC.
......@@ -115,19 +115,16 @@ struct dom_info
unsigned int nodes;
};
static void init_dom_info PARAMS ((struct dom_info *));
static void free_dom_info PARAMS ((struct dom_info *));
static void calc_dfs_tree_nonrec PARAMS ((struct dom_info *,
basic_block,
enum cdi_direction));
static void calc_dfs_tree PARAMS ((struct dom_info *,
enum cdi_direction));
static void compress PARAMS ((struct dom_info *, TBB));
static TBB eval PARAMS ((struct dom_info *, TBB));
static void link_roots PARAMS ((struct dom_info *, TBB, TBB));
static void calc_idoms PARAMS ((struct dom_info *,
enum cdi_direction));
void debug_dominance_info PARAMS ((dominance_info));
static void init_dom_info (struct dom_info *);
static void free_dom_info (struct dom_info *);
static void calc_dfs_tree_nonrec (struct dom_info *, basic_block,
enum cdi_direction);
static void calc_dfs_tree (struct dom_info *, enum cdi_direction);
static void compress (struct dom_info *, TBB);
static TBB eval (struct dom_info *, TBB);
static void link_roots (struct dom_info *, TBB, TBB);
static void calc_idoms (struct dom_info *, enum cdi_direction);
void debug_dominance_info (dominance_info);
/* Helper macro for allocating and initializing an array,
for aesthetic reasons. */
......@@ -150,8 +147,7 @@ void debug_dominance_info PARAMS ((dominance_info));
This initializes the contents of DI, which already must be allocated. */
static void
init_dom_info (di)
struct dom_info *di;
init_dom_info (struct dom_info *di)
{
/* We need memory for n_basic_blocks nodes and the ENTRY_BLOCK or
EXIT_BLOCK. */
......@@ -180,8 +176,7 @@ init_dom_info (di)
/* Free all allocated memory in DI, but not DI itself. */
static void
free_dom_info (di)
struct dom_info *di;
free_dom_info (struct dom_info *di)
{
free (di->dfs_parent);
free (di->path_min);
......@@ -203,10 +198,7 @@ free_dom_info (di)
assigned their dfs number and are linked together to form a tree. */
static void
calc_dfs_tree_nonrec (di, bb, reverse)
struct dom_info *di;
basic_block bb;
enum cdi_direction reverse;
calc_dfs_tree_nonrec (struct dom_info *di, basic_block bb, enum cdi_direction reverse)
{
/* We never call this with bb==EXIT_BLOCK_PTR (ENTRY_BLOCK_PTR if REVERSE). */
/* We call this _only_ if bb is not already visited. */
......@@ -321,9 +313,7 @@ calc_dfs_tree_nonrec (di, bb, reverse)
because there may be nodes from which the EXIT_BLOCK is unreachable. */
static void
calc_dfs_tree (di, reverse)
struct dom_info *di;
enum cdi_direction reverse;
calc_dfs_tree (struct dom_info *di, enum cdi_direction reverse)
{
/* The first block is the ENTRY_BLOCK (or EXIT_BLOCK if REVERSE). */
basic_block begin = reverse ? EXIT_BLOCK_PTR : ENTRY_BLOCK_PTR;
......@@ -364,9 +354,7 @@ calc_dfs_tree (di, reverse)
from V to that root. */
static void
compress (di, v)
struct dom_info *di;
TBB v;
compress (struct dom_info *di, TBB v)
{
/* Btw. It's not worth to unrecurse compress() as the depth is usually not
greater than 5 even for huge graphs (I've not seen call depth > 4).
......@@ -386,9 +374,7 @@ compress (di, v)
value on the path from V to the root. */
static inline TBB
eval (di, v)
struct dom_info *di;
TBB v;
eval (struct dom_info *di, TBB v)
{
/* The representant of the set V is in, also called root (as the set
representation is a tree). */
......@@ -417,9 +403,7 @@ eval (di, v)
of W. */
static void
link_roots (di, v, w)
struct dom_info *di;
TBB v, w;
link_roots (struct dom_info *di, TBB v, TBB w)
{
TBB s = w;
......@@ -461,9 +445,7 @@ link_roots (di, v, w)
On return the immediate dominator to node V is in di->dom[V]. */
static void
calc_idoms (di, reverse)
struct dom_info *di;
enum cdi_direction reverse;
calc_idoms (struct dom_info *di, enum cdi_direction reverse)
{
TBB v, w, k, par;
basic_block en_block;
......@@ -557,8 +539,7 @@ calc_idoms (di, reverse)
immediate resp. all dominators). */
dominance_info
calculate_dominance_info (reverse)
enum cdi_direction reverse;
calculate_dominance_info (enum cdi_direction reverse)
{
struct dom_info di;
dominance_info info;
......@@ -596,8 +577,7 @@ calculate_dominance_info (reverse)
/* Free dominance information. */
void
free_dominance_info (info)
dominance_info info;
free_dominance_info (dominance_info info)
{
basic_block bb;
......@@ -616,9 +596,7 @@ free_dominance_info (info)
/* Return the immediate dominator of basic block BB. */
basic_block
get_immediate_dominator (dom, bb)
dominance_info dom;
basic_block bb;
get_immediate_dominator (dominance_info dom, basic_block bb)
{
return et_forest_node_value (dom->forest,
et_forest_parent (dom->forest,
......@@ -628,9 +606,7 @@ get_immediate_dominator (dom, bb)
/* Set the immediate dominator of the block possibly removing
existing edge. NULL can be used to remove any edge. */
inline void
set_immediate_dominator (dom, bb, dominated_by)
dominance_info dom;
basic_block bb, dominated_by;
set_immediate_dominator (dominance_info dom, basic_block bb, basic_block dominated_by)
{
void *aux_bb_node;
et_forest_node_t bb_node = BB_NODE (dom, bb);
......@@ -649,10 +625,7 @@ set_immediate_dominator (dom, bb, dominated_by)
/* Store all basic blocks dominated by BB into BBS and return their number. */
int
get_dominated_by (dom, bb, bbs)
dominance_info dom;
basic_block bb;
basic_block **bbs;
get_dominated_by (dominance_info dom, basic_block bb, basic_block **bbs)
{
int n, i;
......@@ -665,10 +638,7 @@ get_dominated_by (dom, bb, bbs)
/* Redirect all edges pointing to BB to TO. */
void
redirect_immediate_dominators (dom, bb, to)
dominance_info dom;
basic_block bb;
basic_block to;
redirect_immediate_dominators (dominance_info dom, basic_block bb, basic_block to)
{
et_forest_node_t *bbs = xmalloc (n_basic_blocks * sizeof (basic_block));
et_forest_node_t node = BB_NODE (dom, bb);
......@@ -686,10 +656,7 @@ redirect_immediate_dominators (dom, bb, to)
/* Find first basic block in the tree dominating both BB1 and BB2. */
basic_block
nearest_common_dominator (dom, bb1, bb2)
dominance_info dom;
basic_block bb1;
basic_block bb2;
nearest_common_dominator (dominance_info dom, basic_block bb1, basic_block bb2)
{
if (!bb1)
return bb2;
......@@ -704,18 +671,14 @@ nearest_common_dominator (dom, bb1, bb2)
/* Return TRUE in case BB1 is dominated by BB2. */
bool
dominated_by_p (dom, bb1, bb2)
dominance_info dom;
basic_block bb1;
basic_block bb2;
dominated_by_p (dominance_info dom, basic_block bb1, basic_block bb2)
{
return nearest_common_dominator (dom, bb1, bb2) == bb2;
}
/* Verify invariants of dominator structure. */
void
verify_dominators (dom)
dominance_info dom;
verify_dominators (dominance_info dom)
{
int err = 0;
basic_block bb;
......@@ -738,9 +701,7 @@ verify_dominators (dom)
/* Recount dominator of BB. */
basic_block
recount_dominator (dom, bb)
dominance_info dom;
basic_block bb;
recount_dominator (dominance_info dom, basic_block bb)
{
basic_block dom_bb = NULL;
edge e;
......@@ -757,10 +718,7 @@ recount_dominator (dom, bb)
/* Iteratively recount dominators of BBS. The change is supposed to be local
and not to grow further. */
void
iterate_fix_dominators (dom, bbs, n)
dominance_info dom;
basic_block *bbs;
int n;
iterate_fix_dominators (dominance_info dom, basic_block *bbs, int n)
{
int i, changed = 1;
basic_block old_dom, new_dom;
......@@ -782,9 +740,7 @@ iterate_fix_dominators (dom, bbs, n)
}
void
add_to_dominance_info (dom, bb)
dominance_info dom;
basic_block bb;
add_to_dominance_info (dominance_info dom, basic_block bb)
{
VARRAY_GROW (dom->varray, last_basic_block + 3);
#ifdef ENABLE_CHECKING
......@@ -795,17 +751,14 @@ add_to_dominance_info (dom, bb)
}
void
delete_from_dominance_info (dom, bb)
dominance_info dom;
basic_block bb;
delete_from_dominance_info (dominance_info dom, basic_block bb)
{
et_forest_remove_node (dom->forest, BB_NODE (dom, bb));
SET_BB_NODE (dom, bb, NULL);
}
void
debug_dominance_info (dom)
dominance_info dom;
debug_dominance_info (dominance_info dom)
{
basic_block bb, bb2;
FOR_EACH_BB (bb)
......
/* Dwarf2 assembler output helper routines.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
......@@ -45,9 +45,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
to print a newline, since the caller may want to add a comment. */
void
dw2_assemble_integer (size, x)
int size;
rtx x;
dw2_assemble_integer (int size, rtx x)
{
const char *op = integer_asm_op (size, FALSE);
......@@ -71,7 +69,7 @@ dw2_asm_output_data (int size, unsigned HOST_WIDE_INT value,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
if (size * 8 < HOST_BITS_PER_WIDE_INT)
......@@ -100,7 +98,7 @@ dw2_asm_output_delta (int size, const char *lab1, const char *lab2,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
#ifdef ASM_OUTPUT_DWARF_DELTA
......@@ -132,7 +130,7 @@ dw2_asm_output_offset (int size, const char *label,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
#ifdef ASM_OUTPUT_DWARF_OFFSET
......@@ -160,7 +158,7 @@ dw2_asm_output_pcrel (int size ATTRIBUTE_UNUSED,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
#ifdef ASM_OUTPUT_DWARF_PCREL
......@@ -189,7 +187,7 @@ dw2_asm_output_addr (int size, const char *label,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
dw2_assemble_integer (size, gen_rtx_SYMBOL_REF (Pmode, label));
......@@ -211,7 +209,7 @@ dw2_asm_output_addr_rtx (int size, rtx addr,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
dw2_assemble_integer (size, addr);
......@@ -275,8 +273,7 @@ dw2_asm_output_nstring (const char *str, size_t orig_len,
/* Return the size of an unsigned LEB128 quantity. */
int
size_of_uleb128 (value)
unsigned HOST_WIDE_INT value;
size_of_uleb128 (unsigned HOST_WIDE_INT value)
{
int size = 0;
......@@ -293,8 +290,7 @@ size_of_uleb128 (value)
/* Return the size of a signed LEB128 quantity. */
int
size_of_sleb128 (value)
HOST_WIDE_INT value;
size_of_sleb128 (HOST_WIDE_INT value)
{
int size = 0, byte;
......@@ -315,8 +311,7 @@ size_of_sleb128 (value)
include leb128. */
int
size_of_encoded_value (encoding)
int encoding;
size_of_encoded_value (int encoding)
{
if (encoding == DW_EH_PE_omit)
return 0;
......@@ -338,8 +333,7 @@ size_of_encoded_value (encoding)
/* Yield a name for a given pointer encoding. */
const char *
eh_data_format_name (format)
int format;
eh_data_format_name (int format)
{
#if HAVE_DESIGNATED_INITIALIZERS
#define S(p, v) [p] = v,
......@@ -501,7 +495,7 @@ dw2_asm_output_data_uleb128 (unsigned HOST_WIDE_INT value,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
#ifdef HAVE_AS_LEB128
......@@ -562,7 +556,7 @@ dw2_asm_output_data_sleb128 (HOST_WIDE_INT value,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
#ifdef HAVE_AS_LEB128
......@@ -653,7 +647,7 @@ dw2_asm_output_delta_sleb128 (const char *lab1 ATTRIBUTE_UNUSED,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
#ifdef HAVE_AS_LEB128
......@@ -675,8 +669,8 @@ dw2_asm_output_delta_sleb128 (const char *lab1 ATTRIBUTE_UNUSED,
va_end (ap);
}
static rtx dw2_force_const_mem PARAMS ((rtx));
static int dw2_output_indirect_constant_1 PARAMS ((splay_tree_node, void *));
static rtx dw2_force_const_mem (rtx);
static int dw2_output_indirect_constant_1 (splay_tree_node, void *);
static GTY((param1_is (char *), param2_is (tree))) splay_tree indirect_pool;
......@@ -694,8 +688,7 @@ static GTY(()) int dw2_const_labelno;
"near" the function in any interesting sense. */
static rtx
dw2_force_const_mem (x)
rtx x;
dw2_force_const_mem (rtx x)
{
splay_tree_node node;
const char *str;
......@@ -755,9 +748,8 @@ dw2_force_const_mem (x)
splay_tree_foreach. Emit one queued constant to memory. */
static int
dw2_output_indirect_constant_1 (node, data)
splay_tree_node node;
void* data ATTRIBUTE_UNUSED;
dw2_output_indirect_constant_1 (splay_tree_node node,
void *data ATTRIBUTE_UNUSED)
{
const char *sym;
rtx sym_ref;
......@@ -775,7 +767,7 @@ dw2_output_indirect_constant_1 (node, data)
/* Emit the constants queued through dw2_force_const_mem. */
void
dw2_output_indirect_constants ()
dw2_output_indirect_constants (void)
{
if (indirect_pool)
splay_tree_foreach (indirect_pool, dw2_output_indirect_constant_1, NULL);
......@@ -789,7 +781,7 @@ dw2_asm_output_encoded_addr_rtx (int encoding, rtx addr,
{
int size;
va_list ap;
va_start (ap, comment);
size = size_of_encoded_value (encoding);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/* dwarf2out.h - Various declarations for functions found in dwarf2out.c
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2003
Free Software Foundation, Inc.
This file is part of GCC.
......@@ -18,11 +19,11 @@ along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
extern void dwarf2out_decl PARAMS ((tree));
extern void dwarf2out_frame_debug PARAMS ((rtx));
extern void dwarf2out_decl (tree);
extern void dwarf2out_frame_debug (rtx);
extern void debug_dwarf PARAMS ((void));
extern void debug_dwarf (void);
struct die_struct;
extern void debug_dwarf_die PARAMS ((struct die_struct *));
extern void dwarf2out_set_demangle_name_func PARAMS ((const char *(*) (const char *)));
extern void dwarf2out_add_library_unit_info PARAMS ((const char *, const char *));
extern void debug_dwarf_die (struct die_struct *);
extern void dwarf2out_set_demangle_name_func (const char *(*) (const char *));
extern void dwarf2out_add_library_unit_info (const char *, const char *);
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