#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);
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 \
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;
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;
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;
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;
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;
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 */