summaryrefslogtreecommitdiffstats
path: root/gcc/web.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/web.c')
-rw-r--r--gcc/web.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/web.c b/gcc/web.c
index a547d61f9e8..74ad0f3e82c 100644
--- a/gcc/web.c
+++ b/gcc/web.c
@@ -56,6 +56,8 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "output.h"
#include "df.h"
#include "function.h"
+#include "timevar.h"
+#include "tree-pass.h"
/* This entry is allocated for each reference in the insn stream. */
@@ -271,3 +273,36 @@ web_main (void)
free (used);
df_finish (df);
}
+
+static bool
+gate_handle_web (void)
+{
+ return (optimize > 0 && flag_web);
+}
+
+static void
+rest_of_handle_web (void)
+{
+ web_main ();
+ delete_trivially_dead_insns (get_insns (), max_reg_num ());
+ cleanup_cfg (CLEANUP_EXPENSIVE);
+ reg_scan (get_insns (), max_reg_num ());
+}
+
+struct tree_opt_pass pass_web =
+{
+ "web", /* name */
+ gate_handle_web, /* gate */
+ rest_of_handle_web, /* execute */
+ NULL, /* sub */
+ NULL, /* next */
+ 0, /* static_pass_number */
+ TV_WEB, /* tv_id */
+ 0, /* properties_required */
+ 0, /* properties_provided */
+ 0, /* properties_destroyed */
+ 0, /* todo_flags_start */
+ TODO_dump_func, /* todo_flags_finish */
+ 'Z' /* letter */
+};
+
OpenPOWER on IntegriCloud