This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] BIND_EXPR removal
Hello,
> On Sun, Nov 02, 2003 at 12:29:12PM +0100, Zdenek Dvorak wrote:
> > OK, the second attempt. It just records the variables in the gimple
> > lowering phase, then expands those of them that were not optimized
> > out afterwards (the code to determine this is taken from
> > remove_unused_... in tree-cfg.c, so it should do exactly what we do now).
>
> This seems ok for now.
>
> About the only thing I'd change is to *not* keep the outermost
> BIND_EXPR of the function, as you do. As far as I can tell, the
> only difference this would make is that gimple_add_tmp_var would
> add the variable to your list instead of either queue it in
> gimplify_ctxp->temps or add it to that now missing bind_expr.
here is the change.
Zdenek
* Makefile.in (gimplify.o): Add function.h dependency.
* c-call-graph.c (construct_call_graph): Modify build_tree_cfg call.
* gimple-low.c (record_vars): Export.
(lower_function_body): Remove the topmost BIND_EXPR.
* gimplify.c: Include function.h.
(gimple_add_tmp_var): Record temporaries in the
cfun->unexpanded_vars_list if available.
* tree-cfg.c (build_tree_cfg): Work without the topmost BIND_EXPR.
(dump_cfg_function_to_file): New.
(dump_tree_cfg): Use dump_cfg_function_to_file.
* tree-dump.c (dump_function_to_file): Work without the topmost
BIND_EXPR.
* tree-flow.h (build_tree_cfg): Declaration changed.
(dump_cfg_function_to_file, record_vars): Declare.
* tree-optimize.c (optimize_function_tree, tree_rest_of_compilation):
Work without the topmost BIND_EXPR.
* tree-must-alias.c (tree_compute_must_alias): Use
dump_cfg_function_to_file.
* tree-ssa-ccp.c (tree_ssa_ccp): Ditto.
* tree-ssa-copyprop.c (tree_ssa_copyprop): Ditto.
* tree-ssa-dce.c (tree_ssa_dce): Ditto.
* tree-ssa-dom.c (tree_ssa_dominator_optimize_1): Ditto.
* tree-ssa-pre.c (tree_perform_ssapre): Ditto.
* tree-ssa.c (rewrite_into_ssa, rewrite_out_of_ssa): Ditto.
* tree-tailcall.c (tree_optimize_tail_calls): Ditto.
* tree.h (optimize_function_tree): Declaration changed.
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Makefile.in,v
retrieving revision 1.903.2.126
diff -c -3 -p -r1.903.2.126 Makefile.in
*** Makefile.in 28 Oct 2003 14:56:08 -0000 1.903.2.126
--- Makefile.in 4 Nov 2003 09:53:41 -0000
*************** c-simplify.o : c-simplify.c $(CONFIG_H)
*** 1589,1595 ****
gimplify.o : gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) errors.h \
diagnostic.h $(TREE_SIMPLE_H) tree-inline.h varray.h langhooks.h \
langhooks-def.h $(TREE_FLOW_H) $(TIMEVAR_H) $(TM_H) coretypes.h except.h \
! flags.h $(RTL_H)
gimple-low.o : gimple-low.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) errors.h \
diagnostic.h $(TREE_SIMPLE_H) tree-inline.h varray.h langhooks.h \
langhooks-def.h $(TREE_FLOW_H) $(TIMEVAR_H) $(TM_H) coretypes.h except.h \
--- 1589,1595 ----
gimplify.o : gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) errors.h \
diagnostic.h $(TREE_SIMPLE_H) tree-inline.h varray.h langhooks.h \
langhooks-def.h $(TREE_FLOW_H) $(TIMEVAR_H) $(TM_H) coretypes.h except.h \
! flags.h $(RTL_H) function.h
gimple-low.o : gimple-low.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) errors.h \
diagnostic.h $(TREE_SIMPLE_H) tree-inline.h varray.h langhooks.h \
langhooks-def.h $(TREE_FLOW_H) $(TIMEVAR_H) $(TM_H) coretypes.h except.h \
Index: c-call-graph.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/c-call-graph.c,v
retrieving revision 1.1.4.13
diff -c -3 -p -r1.1.4.13 c-call-graph.c
*** c-call-graph.c 28 Sep 2003 06:06:02 -0000 1.1.4.13
--- c-call-graph.c 4 Nov 2003 09:53:41 -0000
*************** construct_call_graph (pretty_printer *bu
*** 121,127 ****
/* Control flow statistics. */
init_flow ();
! build_tree_cfg (DECL_SAVED_TREE (node));
pp_printf (buffer, " CFG-edges=\"%d\" CFG-BB=\"%d\" McCabe=\"%d\">\n",
n_edges, n_basic_blocks, n_edges - n_basic_blocks + 2);
delete_tree_cfg ();
--- 121,127 ----
/* Control flow statistics. */
init_flow ();
! build_tree_cfg (&DECL_SAVED_TREE (node));
pp_printf (buffer, " CFG-edges=\"%d\" CFG-BB=\"%d\" McCabe=\"%d\">\n",
n_edges, n_basic_blocks, n_edges - n_basic_blocks + 2);
delete_tree_cfg ();
Index: gimple-low.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/gimple-low.c,v
retrieving revision 1.1.4.5
diff -c -3 -p -r1.1.4.5 gimple-low.c
*** gimple-low.c 4 Nov 2003 00:13:36 -0000 1.1.4.5
--- gimple-low.c 4 Nov 2003 09:53:41 -0000
*************** static void lower_stmt (tree_stmt_iterat
*** 52,64 ****
static void lower_bind_expr (tree_stmt_iterator *, struct lower_data *);
static void lower_cond_expr (tree_stmt_iterator *, struct lower_data *);
static bool simple_goto_p (tree);
- static void record_vars (tree);
/* Lowers the BODY. */
void
lower_function_body (tree *body)
{
struct lower_data data;
if (TREE_CODE (*body) != BIND_EXPR)
abort ();
--- 52,64 ----
static void lower_bind_expr (tree_stmt_iterator *, struct lower_data *);
static void lower_cond_expr (tree_stmt_iterator *, struct lower_data *);
static bool simple_goto_p (tree);
/* Lowers the BODY. */
void
lower_function_body (tree *body)
{
struct lower_data data;
+ tree root;
if (TREE_CODE (*body) != BIND_EXPR)
abort ();
*************** lower_function_body (tree *body)
*** 68,80 ****
BLOCK_CHAIN (data.block) = NULL_TREE;
record_vars (BIND_EXPR_VARS (*body));
! BIND_EXPR_VARS (*body) = NULL_TREE;
! lower_stmt_body (&BIND_EXPR_BODY (*body), &data);
if (data.block != DECL_INITIAL (current_function_decl))
abort ();
BLOCK_SUBBLOCKS (data.block) =
blocks_nreverse (BLOCK_SUBBLOCKS (data.block));
}
/* Lowers the EXPR. Unlike gimplification the statements are not relowered
--- 68,82 ----
BLOCK_CHAIN (data.block) = NULL_TREE;
record_vars (BIND_EXPR_VARS (*body));
! root = BIND_EXPR_BODY (*body);
! lower_stmt_body (&root, &data);
if (data.block != DECL_INITIAL (current_function_decl))
abort ();
BLOCK_SUBBLOCKS (data.block) =
blocks_nreverse (BLOCK_SUBBLOCKS (data.block));
+
+ *body = root;
}
/* Lowers the EXPR. Unlike gimplification the statements are not relowered
*************** lower_stmt (tree_stmt_iterator *tsi, str
*** 136,142 ****
/* Record the variables in VARS. */
! static void
record_vars (tree vars)
{
for (; vars; vars = TREE_CHAIN (vars))
--- 138,144 ----
/* Record the variables in VARS. */
! void
record_vars (tree vars)
{
for (; vars; vars = TREE_CHAIN (vars))
Index: gimplify.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/gimplify.c,v
retrieving revision 1.1.2.105
diff -c -3 -p -r1.1.2.105 gimplify.c
*** gimplify.c 3 Nov 2003 21:45:06 -0000 1.1.2.105
--- gimplify.c 4 Nov 2003 09:53:41 -0000
*************** Software Foundation, 59 Temple Place - S
*** 41,46 ****
--- 41,47 ----
#include "hashtab.h"
#include "flags.h"
#include "real.h"
+ #include "function.h"
static struct gimplify_ctx
{
*************** gimple_add_tmp_var (tree tmp)
*** 504,509 ****
--- 505,512 ----
TREE_CHAIN (tmp) = gimplify_ctxp->temps;
gimplify_ctxp->temps = tmp;
}
+ else if (cfun)
+ record_vars (tmp);
else
declare_tmp_vars (tmp, DECL_SAVED_TREE (current_function_decl));
}
Index: tree-cfg.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-cfg.c,v
retrieving revision 1.1.4.192
diff -c -3 -p -r1.1.4.192 tree-cfg.c
*** tree-cfg.c 3 Nov 2003 20:09:14 -0000 1.1.4.192
--- tree-cfg.c 4 Nov 2003 09:53:41 -0000
*************** static tree_stmt_iterator bsi_link_after
*** 156,162 ****
function to process. */
void
! build_tree_cfg (tree fnbody)
{
tree *first_p;
--- 156,162 ----
function to process. */
void
! build_tree_cfg (tree *fnbody)
{
tree *first_p;
*************** build_tree_cfg (tree fnbody)
*** 178,191 ****
ENTRY_BLOCK_PTR->next_bb = EXIT_BLOCK_PTR;
EXIT_BLOCK_PTR->prev_bb = ENTRY_BLOCK_PTR;
! /* Find the basic blocks for the flowgraph. Ignore empty functions. */
! if (IS_EMPTY_STMT (fnbody) || TREE_CODE (fnbody) != BIND_EXPR)
! {
! timevar_pop (TV_TREE_CFG);
! return;
! }
!
! first_p = first_exec_stmt (&BIND_EXPR_BODY (fnbody));
if (first_p)
{
found_computed_goto = 0;
--- 178,184 ----
ENTRY_BLOCK_PTR->next_bb = EXIT_BLOCK_PTR;
EXIT_BLOCK_PTR->prev_bb = ENTRY_BLOCK_PTR;
! first_p = first_exec_stmt (fnbody);
if (first_p)
{
found_computed_goto = 0;
*************** dump_tree_cfg (FILE *file, int flags)
*** 2101,2109 ****
dump_cfg_stats (file);
if (n_basic_blocks > 0)
! dump_function_to_file (current_function_decl, file, flags|TDF_BLOCKS);
}
/* Dump CFG statistics on FILE. */
--- 2094,2169 ----
dump_cfg_stats (file);
if (n_basic_blocks > 0)
! dump_cfg_function_to_file (current_function_decl, file, flags|TDF_BLOCKS);
}
+ /* Dumps function FN to FILE, with details given by FLAGS. Function body is
+ taken from cfg. */
+
+ void
+ dump_cfg_function_to_file (tree fn, FILE *file, int flags)
+ {
+ basic_block bb;
+ tree arg, phi;
+ block_stmt_iterator si;
+ edge e;
+ int show_bb_headers = flags & TDF_BLOCKS;
+
+ flags &= ~TDF_BLOCKS;
+
+ fprintf (file, "\n;; Function %s",
+ (*lang_hooks.decl_printable_name) (fn, 2));
+ fprintf (file, " (%s)\n",
+ IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (fn)));
+ fprintf (file, "\n");
+
+ fprintf (file, "%s (", (*lang_hooks.decl_printable_name) (fn, 2));
+
+ arg = DECL_ARGUMENTS (fn);
+ while (arg)
+ {
+ print_generic_expr (file, arg, 0);
+ if (TREE_CHAIN (arg))
+ fprintf (file, ", ");
+ arg = TREE_CHAIN (arg);
+ }
+ fprintf (file, ")\n");
+
+ fprintf (file, "{\n");
+ FOR_EACH_BB (bb)
+ {
+ if (show_bb_headers)
+ {
+ fprintf (file, "# BLOCK %d\n ", bb->index);
+ fprintf (file, "# PRED");
+ for (e = bb->pred; e; e = e->pred_next)
+ dump_edge_info (file, e, 0);
+ putc ('\n', file);
+ }
+ for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+ {
+ fprintf (file, "\t# ");
+ print_generic_stmt (file, phi, flags);
+ fprintf (file, "\n");
+ }
+
+ for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
+ {
+ fprintf (file, "%d\t", get_lineno (bsi_stmt (si)));
+ print_generic_stmt (file, bsi_stmt (si), flags & ~TDF_VOPS);
+ fprintf (file, "\n");
+ }
+
+ if (show_bb_headers)
+ {
+ fprintf (file, "# SUCC");
+ for (e = bb->succ; e; e = e->succ_next)
+ dump_edge_info (file, e, 1);
+ fprintf (file, "\n\n");
+ }
+ }
+ fprintf (file, "}\n\n");
+ }
/* Dump CFG statistics on FILE. */
Index: tree-dump.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-dump.c,v
retrieving revision 1.6.2.46
diff -c -3 -p -r1.6.2.46 tree-dump.c
*** tree-dump.c 3 Nov 2003 17:26:19 -0000 1.6.2.46
--- tree-dump.c 4 Nov 2003 09:53:41 -0000
*************** dump_function_to_file (tree fn, FILE *st
*** 876,882 ****
if (flags & TDF_RAW)
dump_node (fn, TDF_SLIM | flags, stream);
else
! print_generic_stmt (stream, DECL_SAVED_TREE (fn), flags);
fprintf (stream, "\n\n");
}
--- 876,886 ----
if (flags & TDF_RAW)
dump_node (fn, TDF_SLIM | flags, stream);
else
! {
! fprintf (stream, "{\n");
! print_generic_stmt (stream, DECL_SAVED_TREE (fn), flags);
! fprintf (stream, "\n}");
! }
fprintf (stream, "\n\n");
}
Index: tree-flow.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-flow.h,v
retrieving revision 1.1.4.140
diff -c -3 -p -r1.1.4.140 tree-flow.h
*** tree-flow.h 4 Nov 2003 06:12:46 -0000 1.1.4.140
--- tree-flow.h 4 Nov 2003 09:53:41 -0000
*************** extern GTY(()) varray_type call_clobbere
*** 426,432 ****
Function prototypes
---------------------------------------------------------------------------*/
/* In tree-cfg.c */
! extern void build_tree_cfg (tree);
extern void delete_tree_cfg (void);
extern bool is_ctrl_stmt (tree);
extern bool is_ctrl_altering_stmt (tree);
--- 426,432 ----
Function prototypes
---------------------------------------------------------------------------*/
/* In tree-cfg.c */
! extern void build_tree_cfg (tree *);
extern void delete_tree_cfg (void);
extern bool is_ctrl_stmt (tree);
extern bool is_ctrl_altering_stmt (tree);
*************** extern bool cleanup_cond_expr_graph (bas
*** 459,464 ****
--- 459,465 ----
extern bool cleanup_switch_expr_graph (basic_block, block_stmt_iterator);
extern void tree_optimize_tail_calls (void);
extern basic_block tree_block_forwards_to (basic_block bb);
+ extern void dump_cfg_function_to_file (tree, FILE *, int);
/* In tree-dfa.c */
void find_referenced_vars (tree);
*************** extern void mark_new_vars_to_rename (tre
*** 504,509 ****
--- 505,511 ----
/* In gimple-low.c */
void lower_function_body (tree *);
void expand_used_vars (void);
+ void record_vars (tree);
/* In tree-ssa.c */
extern void init_tree_ssa (void);
Index: tree-must-alias.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-must-alias.c,v
retrieving revision 1.1.2.6
diff -c -3 -p -r1.1.2.6 tree-must-alias.c
*** tree-must-alias.c 3 Nov 2003 13:12:35 -0000 1.1.2.6
--- tree-must-alias.c 4 Nov 2003 09:53:41 -0000
*************** tree_compute_must_alias (tree fndecl, sb
*** 111,117 ****
if (dump_file && (dump_flags & TDF_DETAILS))
dump_referenced_vars (dump_file);
! dump_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
--- 111,117 ----
if (dump_file && (dump_flags & TDF_DETAILS))
dump_referenced_vars (dump_file);
! dump_cfg_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
Index: tree-optimize.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-optimize.c,v
retrieving revision 1.1.4.67
diff -c -3 -p -r1.1.4.67 tree-optimize.c
*** tree-optimize.c 3 Nov 2003 13:12:35 -0000 1.1.4.67
--- tree-optimize.c 4 Nov 2003 09:53:41 -0000
*************** Boston, MA 02111-1307, USA. */
*** 52,58 ****
FUNCTION_DECL node for the function to optimize. */
void
! optimize_function_tree (tree fndecl)
{
/* Don't bother doing anything if the program has errors. */
if (errorcount || sorrycount)
--- 52,58 ----
FUNCTION_DECL node for the function to optimize. */
void
! optimize_function_tree (tree fndecl, tree *chain)
{
/* Don't bother doing anything if the program has errors. */
if (errorcount || sorrycount)
*************** optimize_function_tree (tree fndecl)
*** 61,67 ****
/* Build the flowgraph. */
init_flow ();
! build_tree_cfg (DECL_SAVED_TREE (fndecl));
/* Begin analysis and optimization passes. After the function is
initially renamed into SSA form, passes are responsible from keeping
--- 61,67 ----
/* Build the flowgraph. */
init_flow ();
! build_tree_cfg (chain);
/* Begin analysis and optimization passes. After the function is
initially renamed into SSA form, passes are responsible from keeping
*************** void
*** 239,245 ****
tree_rest_of_compilation (tree fndecl, bool nested_p)
{
location_t saved_loc;
! tree saved_tree = NULL;
timevar_push (TV_EXPAND);
--- 239,245 ----
tree_rest_of_compilation (tree fndecl, bool nested_p)
{
location_t saved_loc;
! tree saved_tree = NULL, chain;
timevar_push (TV_EXPAND);
*************** tree_rest_of_compilation (tree fndecl, b
*** 290,295 ****
--- 290,296 ----
/* Lower the structured statements. */
lower_function_body (&DECL_SAVED_TREE (fndecl));
+ chain = DECL_SAVED_TREE (fndecl);
/* Avoid producing notes for blocks. */
cfun->dont_emit_block_notes = 1;
*************** tree_rest_of_compilation (tree fndecl, b
*** 299,305 ****
/* Invoke the SSA tree optimizer. */
if (optimize >= 1 && !flag_disable_tree_ssa)
! optimize_function_tree (fndecl);
/* If the function has a variably modified type, there may be
SAVE_EXPRs in the parameter types. Their context must be set to
--- 300,309 ----
/* Invoke the SSA tree optimizer. */
if (optimize >= 1 && !flag_disable_tree_ssa)
! optimize_function_tree (fndecl, &chain);
!
! DECL_SAVED_TREE (fndecl) = build (BIND_EXPR, void_type_node,
! NULL_TREE, chain, NULL_TREE);
/* If the function has a variably modified type, there may be
SAVE_EXPRs in the parameter types. Their context must be set to
Index: tree-ssa-ccp.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-ssa-ccp.c,v
retrieving revision 1.1.2.105
diff -c -3 -p -r1.1.2.105 tree-ssa-ccp.c
*** tree-ssa-ccp.c 1 Nov 2003 20:27:15 -0000 1.1.2.105
--- tree-ssa-ccp.c 4 Nov 2003 09:53:41 -0000
*************** tree_ssa_ccp (tree fndecl, sbitmap vars_
*** 203,209 ****
fprintf (dump_file, "\n");
}
! dump_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
}
--- 203,209 ----
fprintf (dump_file, "\n");
}
! dump_cfg_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
}
Index: tree-ssa-copyprop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-ssa-copyprop.c,v
retrieving revision 1.1.2.21
diff -c -3 -p -r1.1.2.21 tree-ssa-copyprop.c
*** tree-ssa-copyprop.c 3 Nov 2003 13:12:35 -0000 1.1.2.21
--- tree-ssa-copyprop.c 4 Nov 2003 09:53:41 -0000
*************** tree_ssa_copyprop (tree fndecl, enum tre
*** 79,85 ****
if (dump_file)
{
! dump_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
--- 79,85 ----
if (dump_file)
{
! dump_cfg_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
Index: tree-ssa-dce.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-ssa-dce.c,v
retrieving revision 1.1.2.63
diff -c -3 -p -r1.1.2.63 tree-ssa-dce.c
*** tree-ssa-dce.c 25 Oct 2003 17:48:24 -0000 1.1.2.63
--- tree-ssa-dce.c 4 Nov 2003 09:53:41 -0000
*************** tree_ssa_dce (tree fndecl, enum tree_dum
*** 539,545 ****
/* Debugging dumps. */
if (dump_file)
{
! dump_function_to_file (fndecl, dump_file, dump_flags);
print_stats ();
dump_end (phase, dump_file);
}
--- 539,545 ----
/* Debugging dumps. */
if (dump_file)
{
! dump_cfg_function_to_file (fndecl, dump_file, dump_flags);
print_stats ();
dump_end (phase, dump_file);
}
Index: tree-ssa-dom.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-ssa-dom.c,v
retrieving revision 1.1.2.75
diff -c -3 -p -r1.1.2.75 tree-ssa-dom.c
*** tree-ssa-dom.c 4 Nov 2003 06:12:46 -0000 1.1.2.75
--- tree-ssa-dom.c 4 Nov 2003 09:53:41 -0000
*************** tree_ssa_dominator_optimize_1 (tree fnde
*** 470,476 ****
{
if (dump_flags & TDF_STATS)
dump_dominator_optimization_stats (dump_file);
! dump_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
--- 470,476 ----
{
if (dump_flags & TDF_STATS)
dump_dominator_optimization_stats (dump_file);
! dump_cfg_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
Index: tree-ssa-pre.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-ssa-pre.c,v
retrieving revision 1.1.4.96
diff -c -3 -p -r1.1.4.96 tree-ssa-pre.c
*** tree-ssa-pre.c 4 Nov 2003 00:29:37 -0000 1.1.4.96
--- tree-ssa-pre.c 4 Nov 2003 09:53:41 -0000
*************** tree_perform_ssapre (tree fndecl, enum t
*** 3337,3343 ****
fprintf (dump_file, "Expressions generated for rename2:%d\n",
pre_stats.exprs_generated);
}
! dump_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
--- 3337,3343 ----
fprintf (dump_file, "Expressions generated for rename2:%d\n",
pre_stats.exprs_generated);
}
! dump_cfg_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
Index: tree-ssa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-ssa.c,v
retrieving revision 1.1.4.144
diff -c -3 -p -r1.1.4.144 tree-ssa.c
*** tree-ssa.c 4 Nov 2003 06:12:46 -0000 1.1.4.144
--- tree-ssa.c 4 Nov 2003 09:53:42 -0000
*************** rewrite_into_ssa (tree fndecl, sbitmap v
*** 448,454 ****
dump_tree_ssa_stats (dump_file);
}
! dump_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
--- 448,454 ----
dump_tree_ssa_stats (dump_file);
}
! dump_cfg_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
*************** rewrite_out_of_ssa (tree fndecl, enum tr
*** 1898,1904 ****
/* Debugging dumps. */
if (dump_file)
{
! dump_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
}
--- 1898,1904 ----
/* Debugging dumps. */
if (dump_file)
{
! dump_cfg_function_to_file (fndecl, dump_file, dump_flags);
dump_end (phase, dump_file);
}
}
Index: tree-tailcall.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-tailcall.c,v
retrieving revision 1.1.2.3
diff -c -3 -p -r1.1.2.3 tree-tailcall.c
*** tree-tailcall.c 24 Oct 2003 07:41:31 -0000 1.1.2.3
--- tree-tailcall.c 4 Nov 2003 09:53:42 -0000
*************** tree_optimize_tail_calls (void)
*** 276,282 ****
if (dump_file)
{
! dump_function_to_file (current_function_decl, dump_file, dump_flags);
dump_end (TDI_tail, dump_file);
}
}
--- 276,282 ----
if (dump_file)
{
! dump_cfg_function_to_file (current_function_decl, dump_file, dump_flags);
dump_end (TDI_tail, dump_file);
}
}
Index: tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.h,v
retrieving revision 1.342.2.121
diff -c -3 -p -r1.342.2.121 tree.h
*** tree.h 3 Nov 2003 17:26:19 -0000 1.342.2.121
--- tree.h 4 Nov 2003 09:53:42 -0000
*************** extern void declare_nonlocal_label (tree
*** 3440,3446 ****
extern int containing_blocks_have_cleanups_or_stack_level (void);
/* In tree-optimize.c. */
! void optimize_function_tree (tree);
/* In gimplify.c. */
extern void gimplify_function_tree (tree);
--- 3440,3446 ----
extern int containing_blocks_have_cleanups_or_stack_level (void);
/* In tree-optimize.c. */
! void optimize_function_tree (tree, tree *);
/* In gimplify.c. */
extern void gimplify_function_tree (tree);