OSDN Git Service

boehm-gc:
[pf3gnuchains/gcc-fork.git] / gcc / tree-pass.h
index 141ac29..39b6bec 100644 (file)
@@ -71,6 +71,9 @@ enum tree_dump_index
 #define TDF_MEMSYMS    (1 << 14)       /* display memory symbols in expr.
                                            Implies TDF_VOPS.  */
 
+#define TDF_DIAGNOSTIC (1 << 15)       /* A dump to be put in a diagnostic
+                                          message.  */
+
 extern char *get_dump_file_name (enum tree_dump_index);
 extern int dump_enabled_p (enum tree_dump_index);
 extern int dump_initialized_p (enum tree_dump_index);
@@ -215,9 +218,8 @@ struct dump_file_info
    for the passes that are handed to register_dump_files.  */
 #define TODO_set_props                 (1 << 15)
 
-/* Set by passes that may make SMT's that were previously never used
-   in statements, used.  */
-#define TODO_update_smt_usage           (1 << 16)
+/* Internally used for the first instance of a pass.  */
+#define TODO_mark_first_instance       (1 << 16)
 
 #define TODO_update_ssa_any            \
     (TODO_update_ssa                   \
@@ -248,6 +250,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;
@@ -289,6 +292,7 @@ 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_dse;
 extern struct tree_opt_pass pass_nrv;
 extern struct tree_opt_pass pass_mark_used_blocks;
@@ -312,6 +316,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;
@@ -332,7 +337,6 @@ extern struct tree_opt_pass pass_fixup_cfg;
 
 extern struct tree_opt_pass pass_init_function;
 extern struct tree_opt_pass pass_jump;
-extern struct tree_opt_pass pass_insn_locators_initialize;
 extern struct tree_opt_pass pass_rtl_eh;
 extern struct tree_opt_pass pass_initial_value_sets;
 extern struct tree_opt_pass pass_unshare_all_rtl;
@@ -348,6 +352,9 @@ extern struct tree_opt_pass pass_profiling;
 extern struct tree_opt_pass pass_rtl_ifcvt;
 extern struct tree_opt_pass pass_tracer;
 
+extern struct tree_opt_pass pass_into_cfg_layout_mode;
+extern struct tree_opt_pass pass_outof_cfg_layout_mode;
+
 extern struct tree_opt_pass pass_loop2;
 extern struct tree_opt_pass pass_rtl_loop_init;
 extern struct tree_opt_pass pass_rtl_move_loop_invariants;
@@ -415,4 +422,13 @@ 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 *);
 
+/* 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
+   passes is considered not to be clean, and it should be avoided if possible.
+   This flag is currently used to prevent loops from being peeled repeatedly
+   in jump threading; it will be removed once we preserve loop structures
+   throughout the compilation -- we will be able to mark the affected loops
+   directly in jump threading, and avoid peeling them next time.  */
+extern bool first_pass_instance;
+
 #endif /* GCC_TREE_PASS_H */