aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-pass.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-pass.h')
-rw-r--r--gcc/tree-pass.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index b772435..299255c 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -218,6 +218,9 @@ struct dump_file_info
for the passes that are handed to register_dump_files. */
#define TODO_set_props (1 << 15)
+/* Internally used for the first instance of a pass. */
+#define TODO_mark_first_instance (1 << 16)
+
#define TODO_update_ssa_any \
(TODO_update_ssa \
| TODO_update_ssa_no_phi \
@@ -417,4 +420,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 */