Patchwork remove has_gate and has_execute

login
register
mail settings
Submitter Trevor Saunders
Date Nov. 8, 2013, 7:46 a.m.
Message ID <1383896767-27971-1-git-send-email-tsaunders@mozilla.com>
Download mbox | patch
Permalink /patch/289711/
State New
Headers show

Comments

Trevor Saunders - Nov. 8, 2013, 7:46 a.m.
From: Trevor Saunders <tsaunders@mozilla.com>

Hi,

This is basically the same patch as I sent yesterday except it now actually removes both has_gate and has_execute.

bootstrapped on x86_64-unknown-linux-gnu same regression test results as r204496 ok?

Trev

2013-11-06  Trevor Saunders  <tsaunders@mozilla.com>

	* pass_manager.h (pass_manager): Adjust.
	* passes.c (opt_pass::execute): Tell the pass manager it doesn't need
	to do anything for this pass.
	(pass_data_early_local_passes): Adjust.
	(pass_data_all_early_optimizations): Likewise.
	(pass_data_all_optimizations): Likewise.
	(pass_data_all_optimizations_g): Likewise.
	(pass_data_rest_of_compilation): Likewise.
	(pass_data_postreload): Likewise.
	(pass_manager::register_dump_files_1): Don't uselessly deal with
	properties of passes.
	(pass_manager::register_dump_files): Adjust.
	(dump_one_pass): Just call pass->gate ().
	(execute_ipa_summary_passes): Likewise.
	(execute_one_pass): Don't check pass->has_execute flag.
	(ipa_write_summaries_2): Don't check pass->has_gate flag.
	(ipa_write_optimization_summaries_1): Likewise.
	(ipa_read_summaries_1): Likewise.
	(ipa_read_optimization_summaries_1): Likewise.
	(execute_ipa_stmt_fixups): Likewise.
	* tree-pass.h (pass_data): Remove has_gate and has_execute.
	(TODO_absolutely_nothing): New constant.
	* asan.c auto-inc-dec.c bb-reorder.c bt-load.c cfgcleanup.c cfgexpand.c
	cfgrtl.c cgraphbuild.c combine-stack-adj.c combine.c compare-elim.c
	config/arc/arc.c config/epiphany/mode-switch-use.c
	config/epiphany/resolve-sw-modes.c config/i386/i386.c
	config/mips/mips.c config/rl78/rl78.c config/sh/sh_treg_combine.cc
	config/sparc/sparc.c cprop.c cse.c dce.c df-core.c dse.c dwarf2cfi.c
	except.c final.c function.c fwprop.c gcse.c gimple-low.c
	gimple-ssa-isolate-paths.c gimple-ssa-strength-reduction.c graphite.c
	ifcvt.c init-regs.c ipa-cp.c ipa-devirt.c ipa-inline-analysis.c
	ipa-inline.c ipa-profile.c ipa-pure-const.c ipa-reference.c
	ipa-split.c ipa.c ira.c jump.c loop-init.c lower-subreg.c
	lto-streamer-out.c mode-switching.c modulo-sched.c omp-low.c
	postreload-gcse.c postreload.c predict.c recog.c ree.c reg-stack.c
	regcprop.c reginfo.c regrename.c reorg.c sched-rgn.c stack-ptr-mod.c
	store-motion.c tracer.c trans-mem.c tree-call-cdce.c tree-cfg.c
	tree-cfgcleanup.c tree-complex.c tree-eh.c tree-emutls.c
	tree-if-conv.c tree-into-ssa.c tree-loop-distribution.c tree-nrv.c
	tree-object-size.c tree-parloops.c tree-predcom.c tree-profile.c
	tree-sra.c tree-ssa-ccp.c tree-ssa-copy.c tree-ssa-copyrename.c
	tree-ssa-dce.c tree-ssa-dom.c tree-ssa-dse.c tree-ssa-forwprop.c
	tree-ssa-ifcombine.c tree-ssa-loop-ch.c tree-ssa-loop-im.c
	tree-ssa-loop-ivcanon.c tree-ssa-loop-prefetch.c
	tree-ssa-loop-unswitch.c tree-ssa-loop.c tree-ssa-math-opts.c
	tree-ssa-phiopt.c tree-ssa-phiprop.c tree-ssa-pre.c
	tree-ssa-reassoc.c tree-ssa-sink.c tree-ssa-strlen.c
	tree-ssa-structalias.c tree-ssa-uncprop.c tree-ssa-uninit.c
	tree-ssa.c tree-ssanames.c tree-stdarg.c tree-switch-conversion.c
	tree-tailcall.c tree-vect-generic.c tree-vectorizer.c tree-vrp.c
	tree.c tsan.c var-tracking.c vtable-verify.c web.c Adjust.

gcc/testsuite/
	* g++.dg/plugin/dumb_plugin.c g++.dg/plugin/selfassign.c
	gcc.dg/plugin/one_time_plugin.c gcc.dg/plugin/selfassign.c Adjust.

 127 files changed, 26 insertions(+), 505 deletions(-)

Patch

diff --git a/gcc/asan.c b/gcc/asan.c
index fdca377..8c27d7d 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -2287,8 +2287,6 @@  const pass_data pass_data_asan =
   GIMPLE_PASS, /* type */
   "asan", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_ssa | PROP_cfg | PROP_gimple_leh ), /* properties_required */
   0, /* properties_provided */
@@ -2333,8 +2331,6 @@  const pass_data pass_data_asan_O0 =
   GIMPLE_PASS, /* type */
   "asan0", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_ssa | PROP_cfg | PROP_gimple_leh ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/auto-inc-dec.c b/gcc/auto-inc-dec.c
index 6006b70..221e6c6 100644
--- a/gcc/auto-inc-dec.c
+++ b/gcc/auto-inc-dec.c
@@ -1513,8 +1513,6 @@  const pass_data pass_data_inc_dec =
   RTL_PASS, /* type */
   "auto_inc_dec", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_AUTO_INC_DEC, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 8e2348f..1ce506c 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -2333,8 +2333,6 @@  const pass_data pass_data_reorder_blocks =
   RTL_PASS, /* type */
   "bbro", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_REORDER_BLOCKS, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -2499,8 +2497,6 @@  const pass_data pass_data_duplicate_computed_gotos =
   RTL_PASS, /* type */
   "compgotos", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_REORDER_BLOCKS, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -2723,8 +2719,6 @@  const pass_data pass_data_partition_blocks =
   RTL_PASS, /* type */
   "bbpart", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_REORDER_BLOCKS, /* tv_id */
   PROP_cfglayout, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index 5384d01..b1a0206 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -1511,8 +1511,6 @@  const pass_data pass_data_branch_target_load_optimize1 =
   RTL_PASS, /* type */
   "btl1", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1580,8 +1578,6 @@  const pass_data pass_data_branch_target_load_optimize2 =
   RTL_PASS, /* type */
   "btl2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 5161190..d8878e9 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -3077,8 +3077,6 @@  const pass_data pass_data_jump =
   RTL_PASS, /* type */
   "jump", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_JUMP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3121,8 +3119,6 @@  const pass_data pass_data_jump2 =
   RTL_PASS, /* type */
   "jump2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_JUMP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index fb05ce7..4c30b72 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -4934,8 +4934,6 @@  const pass_data pass_data_expand =
   RTL_PASS, /* type */
   "expand", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_EXPAND, /* tv_id */
   ( PROP_ssa | PROP_gimple_leh | PROP_cfg
     | PROP_gimple_lcx
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index d6733a2..aefcca7 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -466,8 +466,6 @@  const pass_data pass_data_free_cfg =
   RTL_PASS, /* type */
   "*free_cfg", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3479,8 +3477,6 @@  const pass_data pass_data_into_cfg_layout_mode =
   RTL_PASS, /* type */
   "into_cfglayout", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_CFG, /* tv_id */
   0, /* properties_required */
   PROP_cfglayout, /* properties_provided */
@@ -3516,8 +3512,6 @@  const pass_data pass_data_outof_cfg_layout_mode =
   RTL_PASS, /* type */
   "outof_cfglayout", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_CFG, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c
index 87e06e3..a6a3eb8 100644
--- a/gcc/cgraphbuild.c
+++ b/gcc/cgraphbuild.c
@@ -378,8 +378,6 @@  const pass_data pass_data_build_cgraph_edges =
   GIMPLE_PASS, /* type */
   "*build_cgraph_edges", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
@@ -510,8 +508,6 @@  const pass_data pass_data_rebuild_cgraph_edges =
   GIMPLE_PASS, /* type */
   "*rebuild_cgraph_edges", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_CGRAPH, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
@@ -558,8 +554,6 @@  const pass_data pass_data_remove_cgraph_callee_edges =
   GIMPLE_PASS, /* type */
   "*remove_cgraph_callee_edges", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c
index 5ca131f..a35966d 100644
--- a/gcc/combine-stack-adj.c
+++ b/gcc/combine-stack-adj.c
@@ -650,8 +650,6 @@  const pass_data pass_data_stack_adjustments =
   RTL_PASS, /* type */
   "csa", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_COMBINE_STACK_ADJUST, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/combine.c b/gcc/combine.c
index 13f5e29..951b9ac 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -13873,8 +13873,6 @@  const pass_data pass_data_combine =
   RTL_PASS, /* type */
   "combine", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_COMBINE, /* tv_id */
   PROP_cfglayout, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/compare-elim.c b/gcc/compare-elim.c
index 847c891..ce39fc4 100644
--- a/gcc/compare-elim.c
+++ b/gcc/compare-elim.c
@@ -659,8 +659,6 @@  const pass_data pass_data_compare_elim_after_reload =
   RTL_PASS, /* type */
   "cmpelim", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index 6ddd486..ea86720 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -598,8 +598,6 @@  const pass_data pass_data_arc_ifcvt =
   RTL_PASS,
   "arc_ifcvt",				/* name */
   OPTGROUP_NONE,			/* optinfo_flags */
-  false,				/* has_gate */
-  true,					/* has_execute */
   TV_IFCVT2,				/* tv_id */
   0,					/* properties_required */
   0,					/* properties_provided */
diff --git a/gcc/config/epiphany/mode-switch-use.c b/gcc/config/epiphany/mode-switch-use.c
index 8e27858..2a3a950 100644
--- a/gcc/config/epiphany/mode-switch-use.c
+++ b/gcc/config/epiphany/mode-switch-use.c
@@ -78,8 +78,6 @@  const pass_data pass_data_mode_switch_use =
   RTL_PASS, /* type */
   "mode_switch_use", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/config/epiphany/resolve-sw-modes.c b/gcc/config/epiphany/resolve-sw-modes.c
index b43b4d9..42b189e 100644
--- a/gcc/config/epiphany/resolve-sw-modes.c
+++ b/gcc/config/epiphany/resolve-sw-modes.c
@@ -168,8 +168,6 @@  const pass_data pass_data_resolve_sw_modes =
   RTL_PASS, /* type */
   "resolve_sw_modes", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_MODE_SWITCH, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 53e04c4..7c2d4cf 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2382,8 +2382,6 @@  const pass_data pass_data_insert_vzeroupper =
   RTL_PASS, /* type */
   "vzeroupper", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index c1d8f3a..8a293a2 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -16369,8 +16369,6 @@  const pass_data pass_data_mips_machine_reorg2 =
   RTL_PASS, /* type */
   "mach2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_MACH_DEP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c
index f071e31..c47cf9b 100644
--- a/gcc/config/rl78/rl78.c
+++ b/gcc/config/rl78/rl78.c
@@ -139,8 +139,6 @@  const pass_data pass_data_rl78_devirt =
   RTL_PASS, /* type */
   "devirt", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_MACH_DEP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -223,8 +221,6 @@  const pass_data pass_data_rl78_move_elim =
   RTL_PASS, /* type */
   "move_elim", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_MACH_DEP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/config/sh/sh_treg_combine.cc b/gcc/config/sh/sh_treg_combine.cc
index 0f9027e..49e014e 100644
--- a/gcc/config/sh/sh_treg_combine.cc
+++ b/gcc/config/sh/sh_treg_combine.cc
@@ -593,8 +593,6 @@  const pass_data sh_treg_combine::default_pass_data =
   RTL_PASS,		// type
   "",			// name (overwritten by the constructor)
   OPTGROUP_NONE,	// optinfo_flags
-  true,			// has_gate
-  true,			// has_execute
   TV_OPTIMIZE,		// tv_id
   0,			// properties_required
   0,			// properties_provided
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 0eabd5b..25a5b19 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -1008,8 +1008,6 @@  const pass_data pass_data_work_around_errata =
   RTL_PASS, /* type */
   "errata", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_MACH_DEP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/cprop.c b/gcc/cprop.c
index 358fca9..065405a 100644
--- a/gcc/cprop.c
+++ b/gcc/cprop.c
@@ -1921,8 +1921,6 @@  const pass_data pass_data_rtl_cprop =
   RTL_PASS, /* type */
   "cprop", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_CPROP, /* tv_id */
   PROP_cfglayout, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/cse.c b/gcc/cse.c
index 43fa1e8..42d65ad 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7465,8 +7465,6 @@  const pass_data pass_data_cse =
   RTL_PASS, /* type */
   "cse1", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_CSE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -7545,8 +7543,6 @@  const pass_data pass_data_cse2 =
   RTL_PASS, /* type */
   "cse2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_CSE2, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -7623,8 +7619,6 @@  const pass_data pass_data_cse_after_global_opts =
   RTL_PASS, /* type */
   "cse_local", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_CSE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/dce.c b/gcc/dce.c
index 5c11cbe..719fa1d 100644
--- a/gcc/dce.c
+++ b/gcc/dce.c
@@ -793,8 +793,6 @@  const pass_data pass_data_ud_rtl_dce =
   RTL_PASS, /* type */
   "ud_dce", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_DCE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1226,8 +1224,6 @@  const pass_data pass_data_fast_rtl_dce =
   RTL_PASS, /* type */
   "rtl_dce", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_DCE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/df-core.c b/gcc/df-core.c
index deea755..a321e53 100644
--- a/gcc/df-core.c
+++ b/gcc/df-core.c
@@ -753,8 +753,6 @@  const pass_data pass_data_df_initialize_opt =
   RTL_PASS, /* type */
   "dfinit", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_DF_SCAN, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -799,8 +797,6 @@  const pass_data pass_data_df_initialize_no_opt =
   RTL_PASS, /* type */
   "no-opt dfinit", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_DF_SCAN, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -865,8 +861,6 @@  const pass_data pass_data_df_finish =
   RTL_PASS, /* type */
   "dfinish", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/dse.c b/gcc/dse.c
index b602caa..bfa9489 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -3737,8 +3737,6 @@  const pass_data pass_data_rtl_dse1 =
   RTL_PASS, /* type */
   "dse1", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_DSE1, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3775,8 +3773,6 @@  const pass_data pass_data_rtl_dse2 =
   RTL_PASS, /* type */
   "dse2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_DSE2, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index e0f85ed..8af562b 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -3379,8 +3379,6 @@  const pass_data pass_data_dwarf2_frame =
   RTL_PASS, /* type */
   "dwarf2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_FINAL, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/except.c b/gcc/except.c
index a52d317..a5826d1 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -2008,8 +2008,6 @@  const pass_data pass_data_set_nothrow_function_flags =
   RTL_PASS, /* type */
   "nothrow", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -2639,8 +2637,6 @@  const pass_data pass_data_convert_to_eh_region_ranges =
   RTL_PASS, /* type */
   "eh_ranges", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/final.c b/gcc/final.c
index 3994732..2398d4b 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -852,8 +852,6 @@  const pass_data pass_data_compute_alignments =
   RTL_PASS, /* type */
   "alignments", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -4482,8 +4480,6 @@  const pass_data pass_data_final =
   RTL_PASS, /* type */
   "final", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_FINAL, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -4528,8 +4524,6 @@  const pass_data pass_data_shorten_branches =
   RTL_PASS, /* type */
   "shorten", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_SHORTEN_BRANCH, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -4692,8 +4686,6 @@  const pass_data pass_data_clean_state =
   RTL_PASS, /* type */
   "*clean_state", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_FINAL, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/function.c b/gcc/function.c
index 21ab691..d18ed28 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1957,8 +1957,6 @@  const pass_data pass_data_instantiate_virtual_regs =
   RTL_PASS, /* type */
   "vregs", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -7006,8 +7004,6 @@  const pass_data pass_data_leaf_regs =
   RTL_PASS, /* type */
   "*leaf_regs", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -7062,8 +7058,6 @@  const pass_data pass_data_thread_prologue_and_epilogue =
   RTL_PASS, /* type */
   "pro_and_epilogue", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_THREAD_PROLOGUE_AND_EPILOGUE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -7282,8 +7276,6 @@  const pass_data pass_data_match_asm_constraints =
   RTL_PASS, /* type */
   "asmcons", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/fwprop.c b/gcc/fwprop.c
index d08710c..f60c730 100644
--- a/gcc/fwprop.c
+++ b/gcc/fwprop.c
@@ -1490,8 +1490,6 @@  const pass_data pass_data_rtl_fwprop =
   RTL_PASS, /* type */
   "fwprop1", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_FWPROP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1557,8 +1555,6 @@  const pass_data pass_data_rtl_fwprop_addr =
   RTL_PASS, /* type */
   "fwprop2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_FWPROP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 571e878..9c60667 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -4155,8 +4155,6 @@  const pass_data pass_data_rtl_pre =
   RTL_PASS, /* type */
   "rtl pre", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_PRE, /* tv_id */
   PROP_cfglayout, /* properties_required */
   0, /* properties_provided */
@@ -4194,8 +4192,6 @@  const pass_data pass_data_rtl_hoist =
   RTL_PASS, /* type */
   "hoist", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_HOIST, /* tv_id */
   PROP_cfglayout, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index d527d86..aa4eaed 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -185,8 +185,6 @@  const pass_data pass_data_lower_cf =
   GIMPLE_PASS, /* type */
   "lower", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_gimple_any, /* properties_required */
   PROP_gimple_lcf, /* properties_provided */
diff --git a/gcc/gimple-ssa-isolate-paths.c b/gcc/gimple-ssa-isolate-paths.c
index 4868867..2d42ddf 100644
--- a/gcc/gimple-ssa-isolate-paths.c
+++ b/gcc/gimple-ssa-isolate-paths.c
@@ -293,8 +293,6 @@  const pass_data pass_data_isolate_erroneous_paths =
   GIMPLE_PASS, /* type */
   "isolate-paths", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_ISOLATE_ERRONEOUS_PATHS, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c
index 88afc91..c255009 100644
--- a/gcc/gimple-ssa-strength-reduction.c
+++ b/gcc/gimple-ssa-strength-reduction.c
@@ -3565,8 +3565,6 @@  const pass_data pass_data_strength_reduction =
   GIMPLE_PASS, /* type */
   "slsr", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_GIMPLE_SLSR, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/graphite.c b/gcc/graphite.c
index 176c47c..7e087ad 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -350,8 +350,6 @@  const pass_data pass_data_graphite =
   GIMPLE_PASS, /* type */
   "graphite0", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_GRAPHITE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -387,8 +385,6 @@  const pass_data pass_data_graphite_transforms =
   GIMPLE_PASS, /* type */
   "graphite", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_GRAPHITE_TRANSFORMS, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index fafff9d..4085752 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -4490,8 +4490,6 @@  const pass_data pass_data_rtl_ifcvt =
   RTL_PASS, /* type */
   "ce1", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IFCVT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -4545,8 +4543,6 @@  const pass_data pass_data_if_after_combine =
   RTL_PASS, /* type */
   "ce2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IFCVT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -4599,8 +4595,6 @@  const pass_data pass_data_if_after_reload =
   RTL_PASS, /* type */
   "ce3", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IFCVT2, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/init-regs.c b/gcc/init-regs.c
index 2a15b3e..71b7d58 100644
--- a/gcc/init-regs.c
+++ b/gcc/init-regs.c
@@ -145,8 +145,6 @@  const pass_data pass_data_initialize_regs =
   RTL_PASS, /* type */
   "init-regs", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 72a96d2..07eaa54 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -3649,8 +3649,6 @@  const pass_data pass_data_ipa_cp =
   IPA_PASS, /* type */
   "cp", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_CONSTANT_PROP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 80c6b73..3d47144 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -1151,8 +1151,6 @@  const pass_data pass_data_ipa_devirt =
   IPA_PASS, /* type */
   "devirt", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_DEVIRT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index 4458723..8971fc1 100644
--- a/gcc/ipa-inline-analysis.c
+++ b/gcc/ipa-inline-analysis.c
@@ -2818,8 +2818,6 @@  const pass_data pass_data_inline_parameters =
   GIMPLE_PASS, /* type */
   "inline_param", /* name */
   OPTGROUP_INLINE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_INLINE_PARAMETERS, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index f4cb72a..240df0d 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -2304,8 +2304,6 @@  const pass_data pass_data_early_inline =
   GIMPLE_PASS, /* type */
   "einline", /* name */
   OPTGROUP_INLINE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_EARLY_INLINING, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
@@ -2354,8 +2352,6 @@  const pass_data pass_data_ipa_inline =
   IPA_PASS, /* type */
   "inline", /* name */
   OPTGROUP_INLINE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_INLINING, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa-profile.c b/gcc/ipa-profile.c
index 1260069..44f0ea5 100644
--- a/gcc/ipa-profile.c
+++ b/gcc/ipa-profile.c
@@ -720,8 +720,6 @@  const pass_data pass_data_ipa_profile =
   IPA_PASS, /* type */
   "profile_estimate", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_PROFILE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 50bf500..b7e075d 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -1497,8 +1497,6 @@  const pass_data pass_data_ipa_pure_const =
   IPA_PASS, /* type */
   "pure-const", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_PURE_CONST, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1681,8 +1679,6 @@  const pass_data pass_data_local_pure_const =
   GIMPLE_PASS, /* type */
   "local-pure-const", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_PURE_CONST, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1737,8 +1733,6 @@  const pass_data pass_data_warn_function_noreturn =
   GIMPLE_PASS, /* type */
   "*warn_function_noreturn", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index ae8ba3c..4cf9c7c 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -1159,8 +1159,6 @@  const pass_data pass_data_ipa_reference =
   IPA_PASS, /* type */
   "static-var", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_REFERENCE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index 849868c..728873f 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -1643,8 +1643,6 @@  const pass_data pass_data_split_functions =
   GIMPLE_PASS, /* type */
   "fnsplit", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_FNSPLIT, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
@@ -1703,8 +1701,6 @@  const pass_data pass_data_feedback_split_functions =
   GIMPLE_PASS, /* type */
   "feedback_fnsplit", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_FNSPLIT, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ipa.c b/gcc/ipa.c
index aef437a..85069e5 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -1110,8 +1110,6 @@  const pass_data pass_data_ipa_function_and_variable_visibility =
   SIMPLE_IPA_PASS, /* type */
   "visibility", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_CGRAPHOPT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1159,8 +1157,6 @@  const pass_data pass_data_ipa_free_inline_summary =
   SIMPLE_IPA_PASS, /* type */
   "*free_inline_summary", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_IPA_FREE_INLINE_SUMMARY, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1215,8 +1211,6 @@  const pass_data pass_data_ipa_whole_program_visibility =
   IPA_PASS, /* type */
   "whole-program", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_CGRAPHOPT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1566,8 +1560,6 @@  const pass_data pass_data_ipa_cdtor_merge =
   IPA_PASS, /* type */
   "cdtor", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_CGRAPHOPT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ira.c b/gcc/ira.c
index 10e71d9..0745f54 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -5306,8 +5306,6 @@  const pass_data pass_data_ira =
   RTL_PASS, /* type */
   "ira", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_IRA, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -5350,8 +5348,6 @@  const pass_data pass_data_reload =
   RTL_PASS, /* type */
   "reload", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_RELOAD, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/jump.c b/gcc/jump.c
index a27aaa9..b0c089e 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -146,8 +146,6 @@  const pass_data pass_data_cleanup_barriers =
   RTL_PASS, /* type */
   "barriers", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/loop-init.c b/gcc/loop-init.c
index 0318ba9..2cc263d 100644
--- a/gcc/loop-init.c
+++ b/gcc/loop-init.c
@@ -325,8 +325,6 @@  const pass_data pass_data_loop2 =
   RTL_PASS, /* type */
   "loop2", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_LOOP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -379,8 +377,6 @@  const pass_data pass_data_rtl_loop_init =
   RTL_PASS, /* type */
   "loop2_init", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_LOOP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -437,8 +433,6 @@  const pass_data pass_data_rtl_loop_done =
   RTL_PASS, /* type */
   "loop2_done", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_LOOP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -490,8 +484,6 @@  const pass_data pass_data_rtl_move_loop_invariants =
   RTL_PASS, /* type */
   "loop2_invariant", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LOOP_MOVE_INVARIANTS, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -545,8 +537,6 @@  const pass_data pass_data_rtl_unswitch =
   RTL_PASS, /* type */
   "loop2_unswitch", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LOOP_UNSWITCH, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -612,8 +602,6 @@  const pass_data pass_data_rtl_unroll_and_peel_loops =
   RTL_PASS, /* type */
   "loop2_unroll", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LOOP_UNROLL, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -672,8 +660,6 @@  const pass_data pass_data_rtl_doloop =
   RTL_PASS, /* type */
   "loop2_doloop", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LOOP_DOLOOP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c
index e67bc35..4ccd551 100644
--- a/gcc/lower-subreg.c
+++ b/gcc/lower-subreg.c
@@ -1720,8 +1720,6 @@  const pass_data pass_data_lower_subreg =
   RTL_PASS, /* type */
   "subreg1", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LOWER_SUBREG, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -1758,8 +1756,6 @@  const pass_data pass_data_lower_subreg2 =
   RTL_PASS, /* type */
   "subreg2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LOWER_SUBREG, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 5518623..c5534a1 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -2022,8 +2022,6 @@  const pass_data pass_data_ipa_lto_gimple_out =
   IPA_PASS, /* type */
   "lto_gimple_out", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_IPA_LTO_GIMPLE_OUT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -2494,8 +2492,6 @@  const pass_data pass_data_ipa_lto_finish_out =
   IPA_PASS, /* type */
   "lto_decls_out", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_IPA_LTO_DECL_OUT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/mode-switching.c b/gcc/mode-switching.c
index 0b08998..6d12939 100644
--- a/gcc/mode-switching.c
+++ b/gcc/mode-switching.c
@@ -792,8 +792,6 @@  const pass_data pass_data_mode_switching =
   RTL_PASS, /* type */
   "mode_sw", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_MODE_SWITCH, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
index 599c025..090a43e 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -3360,8 +3360,6 @@  const pass_data pass_data_sms =
   RTL_PASS, /* type */
   "sms", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_SMS, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 7874ff1..98a5f31 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -8242,8 +8242,6 @@  const pass_data pass_data_expand_omp =
   GIMPLE_PASS, /* type */
   "ompexp", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_gimple_any, /* properties_required */
   0, /* properties_provided */
@@ -10090,8 +10088,6 @@  const pass_data pass_data_lower_omp =
   GIMPLE_PASS, /* type */
   "omplower", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_gimple_any, /* properties_required */
   PROP_gimple_lomp, /* properties_provided */
@@ -10492,8 +10488,6 @@  const pass_data pass_data_diagnose_omp_blocks =
   GIMPLE_PASS, /* type */
   "*diagnose_omp_blocks", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_gimple_any, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/pass_manager.h b/gcc/pass_manager.h
index 77d78eb..3bc0a99 100644
--- a/gcc/pass_manager.h
+++ b/gcc/pass_manager.h
@@ -93,7 +93,7 @@  public:
 
 private:
   void set_pass_for_id (int id, opt_pass *pass);
-  int register_dump_files_1 (struct opt_pass *pass, int properties);
+  void register_dump_files_1 (struct opt_pass *pass);
   void register_dump_files (struct opt_pass *pass, int properties);
 
 private:
diff --git a/gcc/passes.c b/gcc/passes.c
index 19e5869..c008a7b 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -112,7 +112,7 @@  opt_pass::gate ()
 unsigned int
 opt_pass::execute ()
 {
-  return 0;
+  return TODO_absolutely_nothing;
 }
 
 opt_pass::opt_pass (const pass_data &data, context *ctxt)
@@ -346,8 +346,6 @@  const pass_data pass_data_early_local_passes =
   SIMPLE_IPA_PASS, /* type */
   "early_local_cleanups", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_EARLY_LOCAL, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -394,8 +392,6 @@  const pass_data pass_data_all_early_optimizations =
   GIMPLE_PASS, /* type */
   "early_optimizations", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -439,8 +435,6 @@  const pass_data pass_data_all_optimizations =
   GIMPLE_PASS, /* type */
   "*all_optimizations", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_OPTIMIZE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -484,8 +478,6 @@  const pass_data pass_data_all_optimizations_g =
   GIMPLE_PASS, /* type */
   "*all_optimizations_g", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_OPTIMIZE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -529,8 +521,6 @@  const pass_data pass_data_rest_of_compilation =
   RTL_PASS, /* type */
   "*rest_of_compilation", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_REST_OF_COMPILATION, /* tv_id */
   PROP_rtl, /* properties_required */
   0, /* properties_provided */
@@ -572,8 +562,6 @@  const pass_data pass_data_postreload =
   RTL_PASS, /* type */
   "*all-postreload", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_POSTRELOAD, /* tv_id */
   PROP_rtl, /* properties_required */
   0, /* properties_provided */
@@ -701,33 +689,21 @@  pass_manager::register_one_dump_file (struct opt_pass *pass)
 
 /* Recursive worker function for register_dump_files.  */
 
-int
+void
 pass_manager::
-register_dump_files_1 (struct opt_pass *pass, int properties)
+register_dump_files_1 (struct opt_pass *pass)
 {
   do
     {
-      int new_properties = (properties | pass->properties_provided)
-			   & ~pass->properties_destroyed;
-
       if (pass->name && pass->name[0] != '*')
         register_one_dump_file (pass);
 
       if (pass->sub)
-        new_properties = register_dump_files_1 (pass->sub, new_properties);
-
-      /* If we have a gate, combine the properties that we could have with
-         and without the pass being examined.  */
-      if (pass->has_gate)
-        properties &= new_properties;
-      else
-        properties = new_properties;
+        register_dump_files_1 (pass->sub);
 
       pass = pass->next;
     }
   while (pass);
-
-  return properties;
 }
 
 /* Register the dump files for the pass_manager starting at PASS.
@@ -739,7 +715,7 @@  pass_manager::
 register_dump_files (struct opt_pass *pass,int properties)
 {
   pass->properties_required |= properties;
-  register_dump_files_1 (pass, properties);
+  register_dump_files_1 (pass);
 }
 
 struct pass_registry
@@ -847,7 +823,7 @@  dump_one_pass (struct opt_pass *pass, int pass_indent)
   const char *pn;
   bool is_on, is_really_on;
 
-  is_on = pass->has_gate ? pass->gate () : true;
+  is_on = pass->gate ();
   is_really_on = override_gate_status (pass, current_function_decl, is_on);
 
   if (pass->static_pass_number <= 0)
@@ -2002,7 +1978,7 @@  execute_ipa_summary_passes (struct ipa_opt_pass_d *ipa_pass)
 
       /* Execute all of the IPA_PASSes in the list.  */
       if (ipa_pass->type == IPA_PASS
-	  && ((!pass->has_gate) || pass->gate ())
+	  && pass->gate ()
 	  && ipa_pass->generate_summary)
 	{
 	  pass_init_dump_file (pass);
@@ -2153,7 +2129,7 @@  execute_one_pass (struct opt_pass *pass)
 
   /* Check whether gate check should be avoided.
      User controls the value of the gate through the parameter "gate_status". */
-  gate_status = pass->has_gate ? pass->gate () : true;
+  gate_status = pass->gate ();
   gate_status = override_gate_status (pass, current_function_decl, gate_status);
 
   /* Override gate with plugin.  */
@@ -2210,11 +2186,11 @@  execute_one_pass (struct opt_pass *pass)
     timevar_push (pass->tv_id);
 
   /* Do it!  */
-  if (pass->has_execute)
-    {
-      todo_after = pass->execute ();
-      do_per_function (clear_last_verified, NULL);
-    }
+  todo_after = pass->execute ();
+  if (todo_after != TODO_absolutely_nothing)
+    do_per_function (clear_last_verified, NULL);
+  else
+    todo_after = 0;
 
   /* Stop timevar.  */
   if (pass->tv_id != TV_NONE)
@@ -2286,7 +2262,7 @@  ipa_write_summaries_2 (struct opt_pass *pass, struct lto_out_decl_state *state)
       gcc_assert (pass->type == SIMPLE_IPA_PASS || pass->type == IPA_PASS);
       if (pass->type == IPA_PASS
 	  && ipa_pass->write_summary
-	  && ((!pass->has_gate) || pass->gate ()))
+	  && pass->gate ())
 	{
 	  /* If a timevar is present, start it.  */
 	  if (pass->tv_id)
@@ -2402,7 +2378,7 @@  ipa_write_optimization_summaries_1 (struct opt_pass *pass, struct lto_out_decl_s
       gcc_assert (pass->type == SIMPLE_IPA_PASS || pass->type == IPA_PASS);
       if (pass->type == IPA_PASS
 	  && ipa_pass->write_optimization_summary
-	  && ((!pass->has_gate) || pass->gate ()))
+	  && pass->gate ())
 	{
 	  /* If a timevar is present, start it.  */
 	  if (pass->tv_id)
@@ -2479,7 +2455,7 @@  ipa_read_summaries_1 (struct opt_pass *pass)
       gcc_assert (!cfun);
       gcc_assert (pass->type == SIMPLE_IPA_PASS || pass->type == IPA_PASS);
 
-      if ((!pass->has_gate) || pass->gate ())
+      if (pass->gate ())
 	{
 	  if (pass->type == IPA_PASS && ipa_pass->read_summary)
 	    {
@@ -2530,7 +2506,7 @@  ipa_read_optimization_summaries_1 (struct opt_pass *pass)
       gcc_assert (!cfun);
       gcc_assert (pass->type == SIMPLE_IPA_PASS || pass->type == IPA_PASS);
 
-      if ((!pass->has_gate) || pass->gate ())
+      if (pass->gate ())
 	{
 	  if (pass->type == IPA_PASS && ipa_pass->read_optimization_summary)
 	    {
@@ -2608,7 +2584,7 @@  execute_ipa_stmt_fixups (struct opt_pass *pass,
     {
       /* Execute all of the IPA_PASSes in the list.  */
       if (pass->type == IPA_PASS
-	  && ((!pass->has_gate) || pass->gate ()))
+	  && pass->gate ())
 	{
 	  struct ipa_opt_pass_d *ipa_pass = (struct ipa_opt_pass_d *) pass;
 
diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c
index 941007f..e09d3a4 100644
--- a/gcc/postreload-gcse.c
+++ b/gcc/postreload-gcse.c
@@ -1331,8 +1331,6 @@  const pass_data pass_data_gcse2 =
   RTL_PASS, /* type */
   "gcse2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_GCSE_AFTER_RELOAD, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/postreload.c b/gcc/postreload.c
index b0c6342..ead2120 100644
--- a/gcc/postreload.c
+++ b/gcc/postreload.c
@@ -2346,8 +2346,6 @@  const pass_data pass_data_postreload_cse =
   RTL_PASS, /* type */
   "postreload", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_RELOAD_CSE_REGS, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/predict.c b/gcc/predict.c
index cc9a053..8cdb7e6 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -2975,8 +2975,6 @@  const pass_data pass_data_profile =
   GIMPLE_PASS, /* type */
   "profile_estimate", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_BRANCH_PROB, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
@@ -3013,8 +3011,6 @@  const pass_data pass_data_strip_predict_hints =
   GIMPLE_PASS, /* type */
   "*strip_predict_hints", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_BRANCH_PROB, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/recog.c b/gcc/recog.c
index c8594bb..5905dff 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -3793,8 +3793,6 @@  const pass_data pass_data_peephole2 =
   RTL_PASS, /* type */
   "peephole2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_PEEPHOLE2, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3841,8 +3839,6 @@  const pass_data pass_data_split_all_insns =
   RTL_PASS, /* type */
   "split1", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3892,8 +3888,6 @@  const pass_data pass_data_split_after_reload =
   RTL_PASS, /* type */
   "split2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3954,8 +3948,6 @@  const pass_data pass_data_split_before_regstack =
   RTL_PASS, /* type */
   "split3", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -4013,8 +4005,6 @@  const pass_data pass_data_split_before_sched2 =
   RTL_PASS, /* type */
   "split4", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -4063,8 +4053,6 @@  const pass_data pass_data_split_for_shorten_branches =
   RTL_PASS, /* type */
   "split5", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/ree.c b/gcc/ree.c
index fa05fee..3303e97 100644
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -948,8 +948,6 @@  const pass_data pass_data_ree =
   RTL_PASS, /* type */
   "ree", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_REE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 1917c46..66d4fc3 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -3301,8 +3301,6 @@  const pass_data pass_data_stack_regs =
   RTL_PASS, /* type */
   "*stack_regs", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_REG_STACK, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3350,8 +3348,6 @@  const pass_data pass_data_stack_regs_run =
   RTL_PASS, /* type */
   "stack", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_REG_STACK, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/regcprop.c b/gcc/regcprop.c
index 0fa0afb..986eada 100644
--- a/gcc/regcprop.c
+++ b/gcc/regcprop.c
@@ -1243,8 +1243,6 @@  const pass_data pass_data_cprop_hardreg =
   RTL_PASS, /* type */
   "cprop_hardreg", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_CPROP_REGISTERS, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/reginfo.c b/gcc/reginfo.c
index db66a09..8a5d908 100644
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -968,8 +968,6 @@  const pass_data pass_data_reginfo_init =
   RTL_PASS, /* type */
   "reginfo", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 5b2c857..0a47d82 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -1849,8 +1849,6 @@  const pass_data pass_data_regrename =
   RTL_PASS, /* type */
   "rnreg", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_RENAME_REGISTERS, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/reorg.c b/gcc/reorg.c
index e9aa889..c9250f3 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -3875,8 +3875,6 @@  const pass_data pass_data_delay_slots =
   RTL_PASS, /* type */
   "dbr", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_DBR_SCHED, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3928,8 +3926,6 @@  const pass_data pass_data_machine_reorg =
   RTL_PASS, /* type */
   "mach", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_MACH_DEP, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index b2a7dbd..641f217 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -3654,8 +3654,6 @@  const pass_data pass_data_live_range_shrinkage =
   RTL_PASS, /* type */
   "lr_shrinkage", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LIVE_RANGE_SHRINKAGE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3693,8 +3691,6 @@  const pass_data pass_data_sched =
   RTL_PASS, /* type */
   "sched1", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_SCHED, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
@@ -3732,8 +3728,6 @@  const pass_data pass_data_sched2 =
   RTL_PASS, /* type */
   "sched2", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_SCHED2, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/stack-ptr-mod.c b/gcc/stack-ptr-mod.c
index 68ccd16..f9e08e0 100644
--- a/gcc/stack-ptr-mod.c
+++ b/gcc/stack-ptr-mod.c
@@ -97,8 +97,6 @@  const pass_data pass_data_stack_ptr_mod =
   RTL_PASS, /* type */
   "*stack_ptr_mod", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/store-motion.c b/gcc/store-motion.c
index 68f293c..6ce0f18 100644
--- a/gcc/store-motion.c
+++ b/gcc/store-motion.c
@@ -1242,8 +1242,6 @@  const pass_data pass_data_rtl_store_motion =
   RTL_PASS, /* type */
   "store_motion", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LSM, /* tv_id */
   PROP_cfglayout, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/testsuite/g++.dg/plugin/dumb_plugin.c b/gcc/testsuite/g++.dg/plugin/dumb_plugin.c
index e197d66..03930d1 100644
--- a/gcc/testsuite/g++.dg/plugin/dumb_plugin.c
+++ b/gcc/testsuite/g++.dg/plugin/dumb_plugin.c
@@ -65,8 +65,6 @@  const pass_data pass_data_dumb_plugin_example =
   GIMPLE_PASS, /* type */
   "dumb_plugin_example", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/testsuite/g++.dg/plugin/selfassign.c b/gcc/testsuite/g++.dg/plugin/selfassign.c
index 5331f79..d831f03 100644
--- a/gcc/testsuite/g++.dg/plugin/selfassign.c
+++ b/gcc/testsuite/g++.dg/plugin/selfassign.c
@@ -272,8 +272,6 @@  const pass_data pass_data_warn_self_assign =
   GIMPLE_PASS, /* type */
   "warn_self_assign", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/testsuite/gcc.dg/plugin/one_time_plugin.c b/gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
index 1e601a6..fd6c736 100644
--- a/gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
+++ b/gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
@@ -20,8 +20,6 @@  const pass_data pass_data_one_pass =
   GIMPLE_PASS, /* type */
   "cfg", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_gimple_any, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/testsuite/gcc.dg/plugin/selfassign.c b/gcc/testsuite/gcc.dg/plugin/selfassign.c
index 5331f79..d831f03 100644
--- a/gcc/testsuite/gcc.dg/plugin/selfassign.c
+++ b/gcc/testsuite/gcc.dg/plugin/selfassign.c
@@ -272,8 +272,6 @@  const pass_data pass_data_warn_self_assign =
   GIMPLE_PASS, /* type */
   "warn_self_assign", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tracer.c b/gcc/tracer.c
index 86557fe..4934022 100644
--- a/gcc/tracer.c
+++ b/gcc/tracer.c
@@ -406,8 +406,6 @@  const pass_data pass_data_tracer =
   GIMPLE_PASS, /* type */
   "tracer", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TRACER, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index d74455d2..add4e0e 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -813,8 +813,6 @@  const pass_data pass_data_diagnose_tm_blocks =
   GIMPLE_PASS, /* type */
   "*diagnose_tm_blocks", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TRANS_MEM, /* tv_id */
   PROP_gimple_any, /* properties_required */
   0, /* properties_provided */
@@ -1736,8 +1734,6 @@  const pass_data pass_data_lower_tm =
   GIMPLE_PASS, /* type */
   "tmlower", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TRANS_MEM, /* tv_id */
   PROP_gimple_lcf, /* properties_required */
   0, /* properties_provided */
@@ -2016,8 +2012,6 @@  const pass_data pass_data_tm_init =
   GIMPLE_PASS, /* type */
   "*tminit", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_TRANS_MEM, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
@@ -2992,8 +2986,6 @@  const pass_data pass_data_tm_mark =
   GIMPLE_PASS, /* type */
   "tmmark", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_TRANS_MEM, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
@@ -3175,8 +3167,6 @@  const pass_data pass_data_tm_edges =
   GIMPLE_PASS, /* type */
   "tmedge", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_TRANS_MEM, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
@@ -3915,8 +3905,6 @@  const pass_data pass_data_tm_memopt =
   GIMPLE_PASS, /* type */
   "tmmemopt", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TRANS_MEM, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
@@ -5550,8 +5538,6 @@  const pass_data pass_data_ipa_tm =
   SIMPLE_IPA_PASS, /* type */
   "tmipa", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TRANS_MEM, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-call-cdce.c b/gcc/tree-call-cdce.c
index eec1b0fb..9fd60d5 100644
--- a/gcc/tree-call-cdce.c
+++ b/gcc/tree-call-cdce.c
@@ -928,8 +928,6 @@  const pass_data pass_data_call_cdce =
   GIMPLE_PASS, /* type */
   "cdce", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_CALL_CDCE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index d646693..45fdd27 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -341,8 +341,6 @@  const pass_data pass_data_build_cfg =
   GIMPLE_PASS, /* type */
   "cfg", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_TREE_CFG, /* tv_id */
   PROP_gimple_leh, /* properties_required */
   ( PROP_cfg | PROP_loops ), /* properties_provided */
@@ -7948,8 +7946,6 @@  const pass_data pass_data_split_crit_edges =
   GIMPLE_PASS, /* type */
   "crited", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SPLIT_EDGES, /* tv_id */
   PROP_cfg, /* properties_required */
   PROP_no_crit_edges, /* properties_provided */
@@ -8120,8 +8116,6 @@  const pass_data pass_data_warn_function_return =
   GIMPLE_PASS, /* type */
   "*warn_function_return", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
@@ -8235,8 +8229,6 @@  const pass_data pass_data_warn_unused_result =
   GIMPLE_PASS, /* type */
   "*warn_unused_result", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_gimple_any, /* properties_required */
   0, /* properties_provided */
@@ -8376,8 +8368,6 @@  const pass_data pass_data_fixup_cfg =
   GIMPLE_PASS, /* type */
   "*free_cfg_annotations", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index c627d2c..54ca944 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -1004,8 +1004,6 @@  const pass_data pass_data_merge_phi =
   GIMPLE_PASS, /* type */
   "mergephi", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_MERGE_PHI, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -1089,8 +1087,6 @@  const pass_data pass_data_cleanup_cfg_post_optimizing =
   GIMPLE_PASS, /* type */
   "optimized", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_TREE_CLEANUP_CFG, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 6439402..f740992 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -1650,8 +1650,6 @@  const pass_data pass_data_lower_complex =
   GIMPLE_PASS, /* type */
   "cplxlower", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   PROP_gimple_lcx, /* properties_provided */
@@ -1697,8 +1695,6 @@  const pass_data pass_data_lower_complex_O0 =
   GIMPLE_PASS, /* type */
   "cplxlower0", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   PROP_gimple_lcx, /* properties_provided */
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index a91542d..0dd8302 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -2163,8 +2163,6 @@  const pass_data pass_data_lower_eh =
   GIMPLE_PASS, /* type */
   "eh", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_TREE_EH, /* tv_id */
   PROP_gimple_lcf, /* properties_required */
   PROP_gimple_leh, /* properties_provided */
@@ -3040,8 +3038,6 @@  const pass_data pass_data_refactor_eh =
   GIMPLE_PASS, /* type */
   "ehopt", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_EH, /* tv_id */
   PROP_gimple_lcf, /* properties_required */
   0, /* properties_provided */
@@ -3267,8 +3263,6 @@  const pass_data pass_data_lower_resx =
   GIMPLE_PASS, /* type */
   "resx", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_EH, /* tv_id */
   PROP_gimple_lcf, /* properties_required */
   0, /* properties_provided */
@@ -3678,8 +3672,6 @@  const pass_data pass_data_lower_eh_dispatch =
   GIMPLE_PASS, /* type */
   "ehdisp", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_EH, /* tv_id */
   PROP_gimple_lcf, /* properties_required */
   0, /* properties_provided */
@@ -4522,8 +4514,6 @@  const pass_data pass_data_cleanup_eh =
   GIMPLE_PASS, /* type */
   "ehcleanup", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_EH, /* tv_id */
   PROP_gimple_lcf, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c
index b5ca407..a06acd5 100644
--- a/gcc/tree-emutls.c
+++ b/gcc/tree-emutls.c
@@ -821,8 +821,6 @@  const pass_data pass_data_ipa_lower_emutls =
   SIMPLE_IPA_PASS, /* type */
   "emutls", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_OPT, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 31994b7..5d3b580 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -1834,8 +1834,6 @@  const pass_data pass_data_if_conversion =
   GIMPLE_PASS, /* type */
   "ifcvt", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index 981e9f4..1daaf87 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -2374,8 +2374,6 @@  const pass_data pass_data_build_ssa =
   GIMPLE_PASS, /* type */
   "ssa", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SSA_OTHER, /* tv_id */
   PROP_cfg, /* properties_required */
   PROP_ssa, /* properties_provided */
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 4f9b848..9c5d94f 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -1783,8 +1783,6 @@  const pass_data pass_data_loop_distribution =
   GIMPLE_PASS, /* type */
   "ldist", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_LOOP_DISTRIBUTION, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-nrv.c b/gcc/tree-nrv.c
index 1425d19..8e16510 100644
--- a/gcc/tree-nrv.c
+++ b/gcc/tree-nrv.c
@@ -278,8 +278,6 @@  const pass_data pass_data_nrv =
   GIMPLE_PASS, /* type */
   "nrv", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_NRV, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
@@ -382,8 +380,6 @@  const pass_data pass_data_return_slot =
   GIMPLE_PASS, /* type */
   "retslot", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c
index 2d7ebfd..ffc7291 100644
--- a/gcc/tree-object-size.c
+++ b/gcc/tree-object-size.c
@@ -1273,8 +1273,6 @@  const pass_data pass_data_object_sizes =
   GIMPLE_PASS, /* type */
   "objsz", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 25a0f0a..82edb5c 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -2272,8 +2272,6 @@  const pass_data pass_data_parallelize_loops =
   GIMPLE_PASS, /* type */
   "parloops", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_PARALLELIZE_LOOPS, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index 9efee1e..15ec9cd 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -47,14 +47,6 @@  struct pass_data
   /* The -fopt-info optimization group flags as defined in dumpfile.h. */
   unsigned int optinfo_flags;
 
-  /* If true, this pass has its own implementation of the opt_pass::gate
-     method.  */
-  bool has_gate;
-
-  /* If true, this pass has its own implementation of the opt_pass::execute
-     method.  */
-  bool has_execute;
-
   /* The timevar id associated with this pass.  */
   /* ??? Ideally would be dynamically assigned.  */
   timevar_id_t tv_id;
@@ -90,12 +82,11 @@  public:
      The default implementation prints an error message and aborts.  */
   virtual opt_pass *clone ();
 
-  /* If has_gate is set, this pass and all sub-passes are executed only if
-     the function returns true.
-     The default implementation returns true.  */
+  /* This pass and all sub-passes are executed only if the function returns
+     true.  The default implementation returns true.  */
   virtual bool gate ();
 
-  /* This is the code to run.  If has_execute is false, then there should
+  /* This is the code to run.  If this is not overridden then there should
      be sub-passes otherwise this pass does nothing.
      The return value contains TODOs to execute in addition to those in
      TODO_flags_finish.   */
@@ -299,6 +290,10 @@  protected:
 /* Rebuild the callgraph edges.  */
 #define TODO_rebuild_cgraph_edges       (1 << 22)
 
+/* Should only be used by opt_pass::execute to tell the pass manager the pass
+   did absolutely nothing. */
+#define TODO_absolutely_nothing 1 << 23
+
 /* Internally used in execute_function_todo().  */
 #define TODO_update_ssa_any		\
     (TODO_update_ssa			\
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c
index 3358f8b..604b2d7 100644
--- a/gcc/tree-predcom.c
+++ b/gcc/tree-predcom.c
@@ -2532,8 +2532,6 @@  const pass_data pass_data_predcom =
   GIMPLE_PASS, /* type */
   "pcom", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_PREDCOM, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
index e98ea68..54e47bf 100644
--- a/gcc/tree-profile.c
+++ b/gcc/tree-profile.c
@@ -633,8 +633,6 @@  const pass_data pass_data_ipa_tree_profile =
   SIMPLE_IPA_PASS, /* type */
   "profile", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_PROFILE, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 38da577..aa58ce1 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -3476,8 +3476,6 @@  const pass_data pass_data_sra_early =
   GIMPLE_PASS, /* type */
   "esra", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SRA, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -3514,8 +3512,6 @@  const pass_data pass_data_sra =
   GIMPLE_PASS, /* type */
   "sra", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SRA, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -5096,8 +5092,6 @@  const pass_data pass_data_early_ipa_sra =
   GIMPLE_PASS, /* type */
   "eipa_sra", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_SRA, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 5b6c0db..fee9c40 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -2218,8 +2218,6 @@  const pass_data pass_data_ccp =
   GIMPLE_PASS, /* type */
   "ccp", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_CCP, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -2636,8 +2634,6 @@  const pass_data pass_data_fold_builtins =
   GIMPLE_PASS, /* type */
   "fab", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c
index 15c6896..326919b 100644
--- a/gcc/tree-ssa-copy.c
+++ b/gcc/tree-ssa-copy.c
@@ -636,8 +636,6 @@  const pass_data pass_data_copy_prop =
   GIMPLE_PASS, /* type */
   "copyprop", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_COPY_PROP, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c
index 30b339d..249425e 100644
--- a/gcc/tree-ssa-copyrename.c
+++ b/gcc/tree-ssa-copyrename.c
@@ -443,8 +443,6 @@  const pass_data pass_data_rename_ssa_copies =
   GIMPLE_PASS, /* type */
   "copyrename", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_COPY_RENAME, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index 72e2fb8..33729d0 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -1512,8 +1512,6 @@  const pass_data pass_data_dce =
   GIMPLE_PASS, /* type */
   "dce", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_DCE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -1551,8 +1549,6 @@  const pass_data pass_data_dce_loop =
   GIMPLE_PASS, /* type */
   "dceloop", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_DCE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -1590,8 +1586,6 @@  const pass_data pass_data_cd_dce =
   GIMPLE_PASS, /* type */
   "cddce", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_CD_DCE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 211bfcf..e74927b 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -927,8 +927,6 @@  const pass_data pass_data_dominator =
   GIMPLE_PASS, /* type */
   "dom", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SSA_DOMINATOR_OPTS, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -3084,8 +3082,6 @@  const pass_data pass_data_phi_only_cprop =
   GIMPLE_PASS, /* type */
   "phicprop", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_PHI_CPROP, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 202eb3e..f57a87f 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -370,8 +370,6 @@  const pass_data pass_data_dse =
   GIMPLE_PASS, /* type */
   "dse", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_DSE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 93b8970..6dd2503 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -3567,8 +3567,6 @@  const pass_data pass_data_forwprop =
   GIMPLE_PASS, /* type */
   "forwprop", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_FORWPROP, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-ifcombine.c b/gcc/tree-ssa-ifcombine.c
index 73ebfe8..f7b95ee 100644
--- a/gcc/tree-ssa-ifcombine.c
+++ b/gcc/tree-ssa-ifcombine.c
@@ -705,8 +705,6 @@  const pass_data pass_data_tree_ifcombine =
   GIMPLE_PASS, /* type */
   "ifcombine", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_IFCOMBINE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c
index b74c56d..d7cc550 100644
--- a/gcc/tree-ssa-loop-ch.c
+++ b/gcc/tree-ssa-loop-ch.c
@@ -266,8 +266,6 @@  const pass_data pass_data_ch =
   GIMPLE_PASS, /* type */
   "ch", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_CH, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 339e7f2..861b5eb 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -2548,8 +2548,6 @@  const pass_data pass_data_lim =
   GIMPLE_PASS, /* type */
   "lim", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_LIM, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index 6f8f04e..ff4a1e4 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -1271,8 +1271,6 @@  const pass_data pass_data_iv_canon =
   GIMPLE_PASS, /* type */
   "ivcanon", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_LOOP_IVCANON, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -1328,8 +1326,6 @@  const pass_data pass_data_complete_unroll =
   GIMPLE_PASS, /* type */
   "cunroll", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_COMPLETE_UNROLL, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -1393,8 +1389,6 @@  const pass_data pass_data_complete_unrolli =
   GIMPLE_PASS, /* type */
   "cunrolli", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_COMPLETE_UNROLL, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index 5b7c0c2..cc0b107 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -2019,8 +2019,6 @@  const pass_data pass_data_loop_prefetch =
   GIMPLE_PASS, /* type */
   "aprefetch", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_PREFETCH, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-loop-unswitch.c b/gcc/tree-ssa-loop-unswitch.c
index e2b1c07..3ee3862 100644
--- a/gcc/tree-ssa-loop-unswitch.c
+++ b/gcc/tree-ssa-loop-unswitch.c
@@ -420,8 +420,6 @@  const pass_data pass_data_tree_unswitch =
   GIMPLE_PASS, /* type */
   "unswitch", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_LOOP_UNSWITCH, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c
index 9bb0028..c157f21 100644
--- a/gcc/tree-ssa-loop.c
+++ b/gcc/tree-ssa-loop.c
@@ -52,8 +52,6 @@  const pass_data pass_data_tree_loop =
   GIMPLE_PASS, /* type */
   "loop", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_TREE_LOOP, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
@@ -108,8 +106,6 @@  const pass_data pass_data_tree_loop_init =
   GIMPLE_PASS, /* type */
   "loopinit", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
@@ -162,8 +158,6 @@  const pass_data pass_data_vectorize =
   GIMPLE_PASS, /* type */
   "vect", /* name */
   OPTGROUP_LOOP | OPTGROUP_VEC, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_VECTORIZATION, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -218,8 +212,6 @@  const pass_data pass_data_check_data_deps =
   GIMPLE_PASS, /* type */
   "ckdd", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_CHECK_DATA_DEPS, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -264,8 +256,6 @@  const pass_data pass_data_scev_cprop =
   GIMPLE_PASS, /* type */
   "sccp", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_SCEV_CONST, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -316,8 +306,6 @@  const pass_data pass_data_record_bounds =
   GIMPLE_PASS, /* type */
   "*record_bounds", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_TREE_LOOP_BOUNDS, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -371,8 +359,6 @@  const pass_data pass_data_iv_optimize =
   GIMPLE_PASS, /* type */
   "ivopts", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_LOOP_IVOPTS, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -420,8 +406,6 @@  const pass_data pass_data_tree_loop_done =
   GIMPLE_PASS, /* type */
   "loopdone", /* name */
   OPTGROUP_LOOP, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 9a29411..344358a 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -650,8 +650,6 @@  const pass_data pass_data_cse_reciprocals =
   GIMPLE_PASS, /* type */
   "recip", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
@@ -1568,8 +1566,6 @@  const pass_data pass_data_cse_sincos =
   GIMPLE_PASS, /* type */
   "sincos", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
@@ -2059,8 +2055,6 @@  const pass_data pass_data_optimize_bswap =
   GIMPLE_PASS, /* type */
   "bswap", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
@@ -2869,8 +2863,6 @@  const pass_data pass_data_optimize_widening_mul =
   GIMPLE_PASS, /* type */
   "widening_mul", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index ef114a0..1d01e7e 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -2043,8 +2043,6 @@  const pass_data pass_data_phiopt =
   GIMPLE_PASS, /* type */
   "phiopt", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_PHIOPT, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -2089,8 +2087,6 @@  const pass_data pass_data_cselim =
   GIMPLE_PASS, /* type */
   "cselim", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_PHIOPT, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-phiprop.c b/gcc/tree-ssa-phiprop.c
index e0e682e..3a43e7a 100644
--- a/gcc/tree-ssa-phiprop.c
+++ b/gcc/tree-ssa-phiprop.c
@@ -405,8 +405,6 @@  const pass_data pass_data_phiprop =
   GIMPLE_PASS, /* type */
   "phiprop", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_PHIPROP, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 4d97b13..304f98b 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -4792,8 +4792,6 @@  const pass_data pass_data_pre =
   GIMPLE_PASS, /* type */
   "pre", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_PRE, /* tv_id */
   ( PROP_no_crit_edges | PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -4862,8 +4860,6 @@  const pass_data pass_data_fre =
   GIMPLE_PASS, /* type */
   "fre", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_FRE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index 538a8ef..1b333fe 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -4627,8 +4627,6 @@  const pass_data pass_data_reassoc =
   GIMPLE_PASS, /* type */
   "reassoc", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_REASSOC, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c
index a8b1492..f3fb12c 100644
--- a/gcc/tree-ssa-sink.c
+++ b/gcc/tree-ssa-sink.c
@@ -595,8 +595,6 @@  const pass_data pass_data_sink_code =
   GIMPLE_PASS, /* type */
   "sink", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SINK, /* tv_id */
   ( PROP_no_crit_edges | PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index ea73179..8a3ea09 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -2092,8 +2092,6 @@  const pass_data pass_data_strlen =
   GIMPLE_PASS, /* type */
   "strlen", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_STRLEN, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 6f3a4ce..80e9399 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -6970,8 +6970,6 @@  const pass_data pass_data_build_alias =
   GIMPLE_PASS, /* type */
   "alias", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -7010,8 +7008,6 @@  const pass_data pass_data_build_ealias =
   GIMPLE_PASS, /* type */
   "ealias", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  false, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -7404,8 +7400,6 @@  const pass_data pass_data_ipa_pta =
   SIMPLE_IPA_PASS, /* type */
   "pta", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_PTA, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-uncprop.c b/gcc/tree-ssa-uncprop.c
index 5255d7fb..a9beb61 100644
--- a/gcc/tree-ssa-uncprop.c
+++ b/gcc/tree-ssa-uncprop.c
@@ -586,8 +586,6 @@  const pass_data pass_data_uncprop =
   GIMPLE_PASS, /* type */
   "uncprop", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SSA_UNCPROP, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa-uninit.c b/gcc/tree-ssa-uninit.c
index 5e376a1..68d113a 100644
--- a/gcc/tree-ssa-uninit.c
+++ b/gcc/tree-ssa-uninit.c
@@ -2183,8 +2183,6 @@  const pass_data pass_data_late_warn_uninitialized =
   GIMPLE_PASS, /* type */
   "uninit", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
@@ -2244,8 +2242,6 @@  const pass_data pass_data_early_warn_uninitialized =
   GIMPLE_PASS, /* type */
   "*early_warn_uninitialized", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_UNINIT, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index ba8045d..f9c25a5 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -1145,8 +1145,6 @@  const pass_data pass_data_init_datastructures =
   GIMPLE_PASS, /* type */
   "*init_datastructures", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   0, /* properties_provided */
@@ -1676,8 +1674,6 @@  const pass_data pass_data_update_address_taken =
   GIMPLE_PASS, /* type */
   "addressables", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  false, /* has_execute */
   TV_ADDRESS_TAKEN, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
index 7635891..dc5a3f2 100644
--- a/gcc/tree-ssanames.c
+++ b/gcc/tree-ssanames.c
@@ -606,8 +606,6 @@  const pass_data pass_data_release_ssa_names =
   GIMPLE_PASS, /* type */
   "release_ssa", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SSA_OTHER, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c
index 2c8aac2..327a99e 100644
--- a/gcc/tree-stdarg.c
+++ b/gcc/tree-stdarg.c
@@ -998,8 +998,6 @@  const pass_data pass_data_stdarg =
   GIMPLE_PASS, /* type */
   "stdarg", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 46b9efe..7a4726a 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -1473,8 +1473,6 @@  const pass_data pass_data_convert_switch =
   GIMPLE_PASS, /* type */
   "switchconv", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SWITCH_CONVERSION, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index 70d167a..e0da60e 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -1078,8 +1078,6 @@  const pass_data pass_data_tail_recursion =
   GIMPLE_PASS, /* type */
   "tailr", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
@@ -1117,8 +1115,6 @@  const pass_data pass_data_tail_calls =
   GIMPLE_PASS, /* type */
   "tailc", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index 1521b2b..8b3b228 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -1463,8 +1463,6 @@  const pass_data pass_data_lower_vector =
   GIMPLE_PASS, /* type */
   "veclower", /* name */
   OPTGROUP_VEC, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   PROP_gimple_lvec, /* properties_provided */
@@ -1504,8 +1502,6 @@  const pass_data pass_data_lower_vector_ssa =
   GIMPLE_PASS, /* type */
   "veclower2", /* name */
   OPTGROUP_VEC, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   PROP_cfg, /* properties_required */
   PROP_gimple_lvec, /* properties_provided */
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 8e3190f..521dd85 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -502,8 +502,6 @@  const pass_data pass_data_slp_vectorize =
   GIMPLE_PASS, /* type */
   "slp", /* name */
   OPTGROUP_LOOP | OPTGROUP_VEC, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_SLP_VECTORIZATION, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
@@ -593,8 +591,6 @@  const pass_data pass_data_ipa_increase_alignment =
   SIMPLE_IPA_PASS, /* type */
   "increase_alignment", /* name */
   OPTGROUP_LOOP | OPTGROUP_VEC, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_IPA_OPT, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 9b26f17..2a7f829 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -9762,8 +9762,6 @@  const pass_data pass_data_vrp =
   GIMPLE_PASS, /* type */
   "vrp", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_TREE_VRP, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tree.c b/gcc/tree.c
index 98896f8..75becd3 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -5746,8 +5746,6 @@  const pass_data pass_data_ipa_free_lang_data =
   SIMPLE_IPA_PASS, /* type */
   "*free_lang_data", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  false, /* has_gate */
-  true, /* has_execute */
   TV_IPA_FREE_LANG_DATA, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/tsan.c b/gcc/tsan.c
index bceb597..0178ada 100644
--- a/gcc/tsan.c
+++ b/gcc/tsan.c
@@ -742,8 +742,6 @@  const pass_data pass_data_tsan =
   GIMPLE_PASS, /* type */
   "tsan", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
@@ -787,8 +785,6 @@  const pass_data pass_data_tsan_O0 =
   GIMPLE_PASS, /* type */
   "tsan0", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_NONE, /* tv_id */
   ( PROP_ssa | PROP_cfg ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 8b07f9f..0a3e737 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -10239,8 +10239,6 @@  const pass_data pass_data_variable_tracking =
   RTL_PASS, /* type */
   "vartrack", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_VAR_TRACKING, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/vtable-verify.c b/gcc/vtable-verify.c
index fb26978..3dbf1ee 100644
--- a/gcc/vtable-verify.c
+++ b/gcc/vtable-verify.c
@@ -763,8 +763,6 @@  const pass_data pass_data_vtable_verify =
   GIMPLE_PASS, /* type */
   "vtable-verify", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_VTABLE_VERIFICATION, /* tv_id */
   ( PROP_cfg | PROP_ssa ), /* properties_required */
   0, /* properties_provided */
diff --git a/gcc/web.c b/gcc/web.c
index 8e8c465..001ee28 100644
--- a/gcc/web.c
+++ b/gcc/web.c
@@ -456,8 +456,6 @@  const pass_data pass_data_web =
   RTL_PASS, /* type */
   "web", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  true, /* has_gate */
-  true, /* has_execute */
   TV_WEB, /* tv_id */
   0, /* properties_required */
   0, /* properties_provided */