OSDN Git Service

2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
[pf3gnuchains/gcc-fork.git] / gcc / tree-pass.h
index 299255c..e210798 100644 (file)
@@ -6,7 +6,7 @@ This file is part of GCC.
 
 GCC is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
 any later version.
 
 GCC is distributed in the hope that it will be useful,
@@ -15,9 +15,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 
 #ifndef GCC_TREE_PASS_H
@@ -218,8 +217,13 @@ struct dump_file_info
    for the passes that are handed to register_dump_files.  */
 #define TODO_set_props                 (1 << 15)
 
+/* Call df_finish at the end of the pass.  This is done after all of
+   the dumpers have been allowed to run so that they have access to
+   the instance before it is destroyed.  */
+#define TODO_df_finish                  (1 << 16)
+
 /* Internally used for the first instance of a pass.  */
-#define TODO_mark_first_instance       (1 << 16)
+#define TODO_mark_first_instance       (1 << 17)
 
 #define TODO_update_ssa_any            \
     (TODO_update_ssa                   \
@@ -250,6 +254,7 @@ extern struct tree_opt_pass pass_tree_loop;
 extern struct tree_opt_pass pass_tree_loop_init;
 extern struct tree_opt_pass pass_lim;
 extern struct tree_opt_pass pass_tree_unswitch;
+extern struct tree_opt_pass pass_predcom;
 extern struct tree_opt_pass pass_iv_canon;
 extern struct tree_opt_pass pass_scev_cprop;
 extern struct tree_opt_pass pass_empty_loop;
@@ -287,11 +292,13 @@ extern struct tree_opt_pass pass_early_warn_uninitialized;
 extern struct tree_opt_pass pass_late_warn_uninitialized;
 extern struct tree_opt_pass pass_cse_reciprocals;
 extern struct tree_opt_pass pass_cse_sincos;
+extern struct tree_opt_pass pass_convert_to_rsqrt;
 extern struct tree_opt_pass pass_warn_function_return;
 extern struct tree_opt_pass pass_warn_function_noreturn;
 extern struct tree_opt_pass pass_phiopt;
 extern struct tree_opt_pass pass_forwprop;
 extern struct tree_opt_pass pass_phiprop;
+extern struct tree_opt_pass pass_tree_ifcombine;
 extern struct tree_opt_pass pass_dse;
 extern struct tree_opt_pass pass_nrv;
 extern struct tree_opt_pass pass_mark_used_blocks;
@@ -315,6 +322,7 @@ extern struct tree_opt_pass pass_build_cgraph_edges;
 extern struct tree_opt_pass pass_reset_cc_flags;
 
 /* IPA Passes */
+extern struct tree_opt_pass pass_ipa_matrix_reorg;
 extern struct tree_opt_pass pass_ipa_cp;
 extern struct tree_opt_pass pass_ipa_inline;
 extern struct tree_opt_pass pass_ipa_early_inline;
@@ -344,6 +352,12 @@ extern struct tree_opt_pass pass_rtl_fwprop_addr;
 extern struct tree_opt_pass pass_jump2;
 extern struct tree_opt_pass pass_lower_subreg;
 extern struct tree_opt_pass pass_cse;
+extern struct tree_opt_pass pass_fast_rtl_dce;
+extern struct tree_opt_pass pass_ud_rtl_dce;
+extern struct tree_opt_pass pass_rtl_dce;
+extern struct tree_opt_pass pass_rtl_dse1;
+extern struct tree_opt_pass pass_rtl_dse2;
+extern struct tree_opt_pass pass_rtl_dse3;
 extern struct tree_opt_pass pass_gcse;
 extern struct tree_opt_pass pass_jump_bypass;
 extern struct tree_opt_pass pass_profiling;
@@ -363,16 +377,23 @@ extern struct tree_opt_pass pass_rtl_loop_done;
 
 extern struct tree_opt_pass pass_web;
 extern struct tree_opt_pass pass_cse2;
-extern struct tree_opt_pass pass_life;
+extern struct tree_opt_pass pass_df_initialize_opt;
+extern struct tree_opt_pass pass_df_initialize_no_opt;
+extern struct tree_opt_pass pass_regclass_init;
+extern struct tree_opt_pass pass_subregs_of_mode_init;
+extern struct tree_opt_pass pass_subregs_of_mode_finish;
+extern struct tree_opt_pass pass_inc_dec;
+extern struct tree_opt_pass pass_stack_ptr_mod;
+extern struct tree_opt_pass pass_initialize_regs;
 extern struct tree_opt_pass pass_combine;
 extern struct tree_opt_pass pass_if_after_combine;
 extern struct tree_opt_pass pass_partition_blocks;
+extern struct tree_opt_pass pass_match_asm_constraints;
 extern struct tree_opt_pass pass_regmove;
 extern struct tree_opt_pass pass_split_all_insns;
 extern struct tree_opt_pass pass_lower_subreg2;
 extern struct tree_opt_pass pass_mode_switching;
 extern struct tree_opt_pass pass_see;
-extern struct tree_opt_pass pass_recompute_reg_usage;
 extern struct tree_opt_pass pass_sms;
 extern struct tree_opt_pass pass_sched;
 extern struct tree_opt_pass pass_local_alloc;
@@ -381,19 +402,24 @@ extern struct tree_opt_pass pass_postreload;
 extern struct tree_opt_pass pass_clean_state;
 extern struct tree_opt_pass pass_branch_prob;
 extern struct tree_opt_pass pass_value_profile_transformations;
-extern struct tree_opt_pass pass_remove_death_notes;
 extern struct tree_opt_pass pass_postreload_cse;
 extern struct tree_opt_pass pass_gcse2;
-extern struct tree_opt_pass pass_flow2;
+extern struct tree_opt_pass pass_split_after_reload;
+extern struct tree_opt_pass pass_branch_target_load_optimize1;
+extern struct tree_opt_pass pass_thread_prologue_and_epilogue;
 extern struct tree_opt_pass pass_stack_adjustments;
 extern struct tree_opt_pass pass_peephole2;
 extern struct tree_opt_pass pass_if_after_reload;
 extern struct tree_opt_pass pass_regrename;
+extern struct tree_opt_pass pass_cprop_hardreg;
 extern struct tree_opt_pass pass_reorder_blocks;
-extern struct tree_opt_pass pass_branch_target_load_optimize;
+extern struct tree_opt_pass pass_branch_target_load_optimize2;
 extern struct tree_opt_pass pass_leaf_regs;
+extern struct tree_opt_pass pass_split_before_sched2;
 extern struct tree_opt_pass pass_sched2;
 extern struct tree_opt_pass pass_stack_regs;
+extern struct tree_opt_pass pass_stack_regs_run;
+extern struct tree_opt_pass pass_df_finish;
 extern struct tree_opt_pass pass_compute_alignments;
 extern struct tree_opt_pass pass_duplicate_computed_gotos;
 extern struct tree_opt_pass pass_variable_tracking;
@@ -419,6 +445,8 @@ extern struct tree_opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes;
 
 extern void execute_pass_list (struct tree_opt_pass *);
 extern void execute_ipa_pass_list (struct tree_opt_pass *);
+extern void print_current_pass (FILE *);
+extern void debug_pass (void);
 
 /* Set to true if the pass is called the first time during compilation of the
    current function.  Note that using this information in the optimization