diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-03-19 11:22:40 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-03-19 11:22:40 +0000 |
commit | 20099e352f87c3265c44cd3341fd3aec25cb0fb4 (patch) | |
tree | a92c2b5908ddb433dcfd4848584500d8ec662e1d /gcc/passes.c | |
parent | 250845799e5d4cd9589711ba28ecf73e6fac3287 (diff) | |
download | gcc-20099e352f87c3265c44cd3341fd3aec25cb0fb4.tar.gz |
* gcc.dg/20050811-2.c: Update dumping flags.
* gcc.dg/sms-2.c: Update dumping flags.
* gcc.dg/var-expand1.c: Update dumping flags.
* gcc.dg/var-expand3.c: Update dumping flags.
* gcc.dg/pr30957-1.c: Update dumping flags.
* gcc.dg/20050811-1.c: Update dumping flags.
* gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail.
* gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail.
PR other/35094
* toplev.c (decode_d_option): Handle all CPP flags.
* tree-vrp.c: Update tree_pass descriptors.
* regrename.c: Update tree_pass descriptors.
* fwprop.c: Update tree_pass descriptors.
* doc/invoke.texi: Remove documentation of dropped -d? flags.
* tree-into-ssa.c: Update tree_pass descriptors.
* tree-dump.c: Update tree_pass descriptors.
* tree-complex.c: Update tree_pass descriptors.
* tree-dump.h: Update tree_pass descriptors.
* see.c: Update tree_pass descriptors.
* cgraphbuild.c: Update tree_pass descriptors.
* tracer.c: Update tree_pass descriptors.
* tree-loop-distribution.c: Update tree_pass descriptors.
* cgraph.c: Update tree_pass descriptors.
* postreload-gcse.c: Update tree_pass descriptors.
* postreload.c: Update tree_pass descriptors.
* tree-ssa-loop-ch.c: Update tree_pass descriptors.
* tree-tailcall.c: Update tree_pass descriptors.
* tree-pass.h (tree_opt_pass): Rename to ...
(opt_pass) ... this one; add "type" field and remove letter field.
(gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
(execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
all_lowering_passes): Update declaration.
* ipa-cp.c: Update tree_pass descriptors.
* final.c: Update tree_pass descriptors.
* omp-low.c: Update tree_pass descriptors.
* tree-ssa-dse.c: Update tree_pass descriptors.
* ipa-reference.c: Update tree_pass descriptors.
* tree-ssa-uncprop.c: Update tree_pass descriptors.
* auto-inc-dec.c: Update tree_pass descriptors.
* reorg.c: Update tree_pass descriptors.
* cgraphunit.c: Update tree_pass descriptors.
* tree-ssa-copyrename.c: Update tree_pass descriptors.
* tree-ssa-ccp.c: Update tree_pass descriptors.
* df-core.c: Update tree_pass descriptors.
* mode-switching.c: Update tree_pass descriptors.
* tree-nomudflap.c: Update tree_pass descriptors.
* modulo-sched.c: Update tree_pass descriptors.
* ipa-pure-const.c: Update tree_pass descriptors.
* cse.c: Update tree_pass descriptors.
* web.c: Update tree_pass descriptors.
* tree-stdarg.c: Update tree_pass descriptors.
* tree-ssa-math-opts.c: Update tree_pass descriptors.
* tree-ssa-dom.c: Update tree_pass descriptors.
* tree-nrv.c: Update tree_pass descriptors.
* tree-ssa-alias.c: Update tree_pass descriptors.
* loop-init.c: Update tree_pass descriptors.
* gimple-low.c: Update tree_pass descriptors.
* ipa-inline.c: Update tree_pass descriptors.
* tree-ssa-sink.c: Update tree_pass descriptors.
* global.c: Update tree_pass descriptors.
* ifcvt.c: Update tree_pass descriptors.
* jump.c: Update tree_pass descriptors.
* predict.c: Update tree_pass descriptors.
* tree-ssa-loop.c: Update tree_pass descriptors.
* recog.c: Update tree_pass descriptors.
* dse.c: Update tree_pass descriptors.
* tree-ssa-ifcombine.c: Update tree_pass descriptors.
* tree-eh.c: Update tree_pass descriptors.
* regmove.c: Update tree_pass descriptors.
* local-alloc.c
* function.c: Update tree_pass descriptors.
* tree-vectorizer.c: Update tree_pass descriptors.
* gcse.c: Update tree_pass descriptors.
* ipa-type-escape.c: Update tree_pass descriptors.
* tree-if-conv.c: Update tree_pass descriptors.
* init-regs.c: Update tree_pass descriptors.
* ipa.c: Update tree_pass descriptors.
* tree-ssa-phiopt.c: Update tree_pass descriptors.
* rtl-factoring.c: Update tree_pass descriptors.
* lower-subreg.c: Update tree_pass descriptors.
* bt-load.c: Update tree_pass descriptors.
* tree-dfa.c: Update tree_pass descriptors.
* except.c: Update tree_pass descriptors.
* emit-rtl.c: Update tree_pass descriptors.
* cfgexpand.c: Update tree_pass descriptors.
* tree-cfgcleanup.c: Update tree_pass descriptors.
* cfgcleanup.c: Update tree_pass descriptors.
* tree-ssa-pre.c: Update tree_pass descriptors.
* tree-sra.c: Update tree_pass descriptors.
* tree-mudflap.c: Update tree_pass descriptors.
* tree-ssa-copy.c: Update tree_pass descriptors.
* cfglayout.c: Update tree_pass descriptors.
* tree-ssa-forwprop.c: Update tree_pass descriptors.
* tree-ssa-dce.c: Update tree_pass descriptors.
* tree-ssa.c: Update tree_pass descriptors.
* regclass.c: Update tree_pass descriptors.
* integrate.c: Update tree_pass descriptors.
* tree-optimize.c: Update tree_pass descriptors.
* tree-ssa-phiprop.c: Update tree_pass descriptors.
* tree-object-size.c: Update tree_pass descriptors.
* combine.c: Update tree_pass descriptors.
* tree-outof-ssa.c: Update tree_pass descriptors.
* bb-reorder.c: Update tree_pass descriptors.
* stack-ptr-mod.c: Update tree_pass descriptors.
* var-tracking.c: Update tree_pass descriptors.
* tree-profile.c: Update tree_pass descriptors.
* tree-vect-generic.c: Update tree_pass descriptors.
* reg-stack.c: Update tree_pass descriptors.
* sched-rgn.c: Update tree_pass descriptors.
* tree-ssa-structalias.c: Update tree_pass descriptors.
* tree-cfg.c: Update tree_pass descriptors.
* passes.c (current_pass): Update declaration.
(finish_optimization_passes): Update.
(all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
(register_one_dump_file, register_dump_files_1, next_pass_1):
Update arguments.
(init_optimization_passes): Update handling of new types.
(execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
* ipa-struct-reorg.c: Update tree_pass descriptors.
* tree-ssa-reassoc.c: Update tree_pass descriptors.
* combine-stack-adj.c: Update tree_pass descriptors.
* cfgrtl.c: Update tree_pass descriptors.
* dce.c: Update tree_pass descriptors.
* tree-ssanames.c: Update tree_pass descriptors.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133342 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 74 |
1 files changed, 39 insertions, 35 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index bec473a0670..833bdbd0134 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -104,7 +104,7 @@ along with GCC; see the file COPYING3. If not see /* This is used for debugging. It allows the current pass to printed from anywhere in compilation. */ -struct tree_opt_pass *current_pass; +struct opt_pass *current_pass; /* Call from anywhere to find out what pass this is. Useful for printing out debugging information deep inside an service @@ -246,19 +246,19 @@ finish_optimization_passes (void) timevar_push (TV_DUMP); if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities) { - dump_file = dump_begin (pass_profile.static_pass_number, NULL); + dump_file = dump_begin (pass_profile.pass.static_pass_number, NULL); end_branch_prob (); if (dump_file) - dump_end (pass_profile.static_pass_number, dump_file); + dump_end (pass_profile.pass.static_pass_number, dump_file); } if (optimize > 0) { - dump_file = dump_begin (pass_combine.static_pass_number, NULL); + dump_file = dump_begin (pass_combine.pass.static_pass_number, NULL); if (dump_file) { dump_combine_total_stats (dump_file); - dump_end (pass_combine.static_pass_number, dump_file); + dump_end (pass_combine.pass.static_pass_number, dump_file); } } @@ -284,8 +284,10 @@ gate_rest_of_compilation (void) return !(rtl_dump_and_exit || flag_syntax_only || errorcount || sorrycount); } -struct tree_opt_pass pass_rest_of_compilation = +struct gimple_opt_pass pass_rest_of_compilation = { + { + GIMPLE_PASS, NULL, /* name */ gate_rest_of_compilation, /* gate */ NULL, /* execute */ @@ -297,8 +299,8 @@ struct tree_opt_pass pass_rest_of_compilation = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; static bool @@ -307,8 +309,10 @@ gate_postreload (void) return reload_completed; } -struct tree_opt_pass pass_postreload = +struct rtl_opt_pass pass_postreload = { + { + RTL_PASS, NULL, /* name */ gate_postreload, /* gate */ NULL, /* execute */ @@ -320,21 +324,21 @@ struct tree_opt_pass pass_postreload = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_ggc_collect | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 0 /* letter */ + TODO_ggc_collect | TODO_verify_rtl_sharing /* todo_flags_finish */ + } }; /* The root of the compilation pass tree, once constructed. */ -struct tree_opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; +struct opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; /* Iterate over the pass tree allocating dump file numbers. We want to do this depth first, and independent of whether the pass is enabled or not. */ static void -register_one_dump_file (struct tree_opt_pass *pass, bool ipa, int properties) +register_one_dump_file (struct opt_pass *pass, bool ipa, int properties) { char *dot_name, *flag_name, *glob_name; const char *prefix; @@ -358,13 +362,13 @@ register_one_dump_file (struct tree_opt_pass *pass, bool ipa, int properties) flag_name = concat (prefix, pass->name, num, NULL); glob_name = concat (prefix, pass->name, NULL); pass->static_pass_number = dump_register (dot_name, flag_name, glob_name, - flags, pass->letter); + flags); } /* Recursive worker function for register_dump_files. */ static int -register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties) +register_dump_files_1 (struct opt_pass *pass, bool ipa, int properties) { do { @@ -398,7 +402,7 @@ register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties) the pipeline. */ static void -register_dump_files (struct tree_opt_pass *pass, bool ipa, int properties) +register_dump_files (struct opt_pass *pass, bool ipa, int properties) { pass->properties_required |= properties; register_dump_files_1 (pass, ipa, properties); @@ -407,14 +411,14 @@ register_dump_files (struct tree_opt_pass *pass, bool ipa, int properties) /* Add a pass to the pass list. Duplicate the pass if it's already in the list. */ -static struct tree_opt_pass ** -next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass) +static struct opt_pass ** +next_pass_1 (struct opt_pass **list, struct opt_pass *pass) { /* A nonzero static_pass_number indicates that the pass is already in the list. */ if (pass->static_pass_number) { - struct tree_opt_pass *new; + struct opt_pass *new; new = xmalloc (sizeof (*new)); memcpy (new, pass, sizeof (*new)); @@ -467,9 +471,9 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass) void init_optimization_passes (void) { - struct tree_opt_pass **p; + struct opt_pass **p; -#define NEXT_PASS(PASS) (p = next_pass_1 (p, &PASS)) +#define NEXT_PASS(PASS) (p = next_pass_1 (p, &((PASS).pass))) /* All passes needed to lower the function into shape optimizers can operate on. These passes are always run first on the function, but @@ -497,21 +501,21 @@ init_optimization_passes (void) NEXT_PASS (pass_ipa_function_and_variable_visibility); NEXT_PASS (pass_ipa_early_inline); { - struct tree_opt_pass **p = &pass_ipa_early_inline.sub; + struct opt_pass **p = &pass_ipa_early_inline.pass.sub; NEXT_PASS (pass_early_inline); NEXT_PASS (pass_inline_parameters); NEXT_PASS (pass_rebuild_cgraph_edges); } NEXT_PASS (pass_early_local_passes); { - struct tree_opt_pass **p = &pass_early_local_passes.sub; + struct opt_pass **p = &pass_early_local_passes.pass.sub; NEXT_PASS (pass_tree_profile); NEXT_PASS (pass_cleanup_cfg); NEXT_PASS (pass_init_datastructures); NEXT_PASS (pass_expand_omp); NEXT_PASS (pass_all_early_optimizations); { - struct tree_opt_pass **p = &pass_all_early_optimizations.sub; + struct opt_pass **p = &pass_all_early_optimizations.pass.sub; NEXT_PASS (pass_referenced_vars); NEXT_PASS (pass_reset_cc_flags); NEXT_PASS (pass_build_ssa); @@ -555,7 +559,7 @@ init_optimization_passes (void) NEXT_PASS (pass_apply_inline); NEXT_PASS (pass_all_optimizations); { - struct tree_opt_pass **p = &pass_all_optimizations.sub; + struct opt_pass **p = &pass_all_optimizations.pass.sub; NEXT_PASS (pass_create_structure_vars); /* ??? pass_build_alias is a dummy pass that ensures that we execute TODO_rebuild_alias at this point even if @@ -614,7 +618,7 @@ init_optimization_passes (void) NEXT_PASS (pass_sink_code); NEXT_PASS (pass_tree_loop); { - struct tree_opt_pass **p = &pass_tree_loop.sub; + struct opt_pass **p = &pass_tree_loop.pass.sub; NEXT_PASS (pass_tree_loop_init); NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_dce_loop); @@ -631,7 +635,7 @@ init_optimization_passes (void) NEXT_PASS (pass_if_conversion); NEXT_PASS (pass_vectorize); { - struct tree_opt_pass **p = &pass_vectorize.sub; + struct opt_pass **p = &pass_vectorize.pass.sub; NEXT_PASS (pass_lower_vector_ssa); NEXT_PASS (pass_dce_loop); } @@ -685,7 +689,7 @@ init_optimization_passes (void) NEXT_PASS (pass_expand); NEXT_PASS (pass_rest_of_compilation); { - struct tree_opt_pass **p = &pass_rest_of_compilation.sub; + struct opt_pass **p = &pass_rest_of_compilation.pass.sub; NEXT_PASS (pass_init_function); NEXT_PASS (pass_jump); NEXT_PASS (pass_rtl_eh); @@ -705,7 +709,7 @@ init_optimization_passes (void) efficiently. */ NEXT_PASS (pass_loop2); { - struct tree_opt_pass **p = &pass_loop2.sub; + struct opt_pass **p = &pass_loop2.pass.sub; NEXT_PASS (pass_rtl_loop_init); NEXT_PASS (pass_rtl_move_loop_invariants); NEXT_PASS (pass_rtl_unswitch); @@ -743,7 +747,7 @@ init_optimization_passes (void) NEXT_PASS (pass_subregs_of_mode_finish); NEXT_PASS (pass_postreload); { - struct tree_opt_pass **p = &pass_postreload.sub; + struct opt_pass **p = &pass_postreload.pass.sub; NEXT_PASS (pass_postreload_cse); NEXT_PASS (pass_gcse2); NEXT_PASS (pass_split_after_reload); @@ -764,7 +768,7 @@ init_optimization_passes (void) NEXT_PASS (pass_sched2); NEXT_PASS (pass_stack_regs); { - struct tree_opt_pass **p = &pass_stack_regs.sub; + struct opt_pass **p = &pass_stack_regs.pass.sub; NEXT_PASS (pass_split_before_regstack); NEXT_PASS (pass_stack_regs_run); } @@ -1056,13 +1060,13 @@ verify_curr_properties (void *data) static void update_properties_after_pass (void *data) { - struct tree_opt_pass *pass = data; + struct opt_pass *pass = data; cfun->curr_properties = (cfun->curr_properties | pass->properties_provided) & ~pass->properties_destroyed; } static bool -execute_one_pass (struct tree_opt_pass *pass) +execute_one_pass (struct opt_pass *pass) { bool initializing_dump; unsigned int todo_after = 0; @@ -1169,7 +1173,7 @@ execute_one_pass (struct tree_opt_pass *pass) } void -execute_pass_list (struct tree_opt_pass *pass) +execute_pass_list (struct opt_pass *pass) { do { @@ -1183,7 +1187,7 @@ execute_pass_list (struct tree_opt_pass *pass) /* Same as execute_pass_list but assume that subpasses of IPA passes are local passes. */ void -execute_ipa_pass_list (struct tree_opt_pass *pass) +execute_ipa_pass_list (struct opt_pass *pass) { do { |