diff options
Diffstat (limited to 'gcc/web.c')
| -rw-r--r-- | gcc/web.c | 35 |
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 */ +}; + |

