Add 'final' and 'override' to opt_pass vfunc impls
gcc/ChangeLog: * adjust-alignment.cc: Add "final" and "override" to opt_pass vfunc implementations, removing redundant "virtual" as appropriate. * asan.cc: Likewise. * auto-inc-dec.cc: Likewise. * auto-profile.cc: Likewise. * bb-reorder.cc: Likewise. * cfgcleanup.cc: Likewise. * cfgexpand.cc: Likewise. * cfgrtl.cc: Likewise. * cgraphbuild.cc: Likewise. * combine-stack-adj.cc: Likewise. * combine.cc: Likewise. * compare-elim.cc: Likewise. * config/i386/i386-features.cc: Likewise. * coroutine-passes.cc: Likewise. * cprop.cc: Likewise. * cse.cc: Likewise. * dce.cc: Likewise. * df-core.cc: Likewise. * dse.cc: Likewise. * dwarf2cfi.cc: Likewise. * early-remat.cc: Likewise. * except.cc: Likewise. * final.cc: Likewise. * function.cc: Likewise. * fwprop.cc: Likewise. * gcse.cc: Likewise. * gimple-harden-conditionals.cc: Likewise. * gimple-if-to-switch.cc: Likewise. * gimple-isel.cc: Likewise. * gimple-laddress.cc: Likewise. * gimple-loop-interchange.cc: Likewise. * gimple-loop-jam.cc: Likewise. * gimple-loop-versioning.cc: Likewise. * gimple-low.cc: Likewise. * gimple-ssa-backprop.cc: Likewise. * gimple-ssa-evrp.cc: Likewise. * gimple-ssa-isolate-paths.cc: Likewise. * gimple-ssa-nonnull-compare.cc: Likewise. * gimple-ssa-split-paths.cc: Likewise. * gimple-ssa-store-merging.cc: Likewise. * gimple-ssa-strength-reduction.cc: Likewise. * gimple-ssa-warn-access.cc: Likewise. * gimple-ssa-warn-alloca.cc: Likewise. * gimple-ssa-warn-restrict.cc: Likewise. * gimple-warn-recursion.cc: Likewise. * graphite.cc: Likewise. * ifcvt.cc: Likewise. * init-regs.cc: Likewise. * ipa-comdats.cc: Likewise. * ipa-cp.cc: Likewise. * ipa-devirt.cc: Likewise. * ipa-fnsummary.cc: Likewise. * ipa-free-lang-data.cc: Likewise. * ipa-icf.cc: Likewise. * ipa-inline.cc: Likewise. * ipa-modref.cc: Likewise. * ipa-profile.cc: Likewise. * ipa-pure-const.cc: Likewise. * ipa-reference.cc: Likewise. * ipa-split.cc: Likewise. * ipa-sra.cc: Likewise. * ipa-visibility.cc: Likewise. * ipa.cc: Likewise. * ira.cc: Likewise. * jump.cc: Likewise. * loop-init.cc: Likewise. * lower-subreg.cc: Likewise. * mode-switching.cc: Likewise. * modulo-sched.cc: Likewise. * multiple_target.cc: Likewise. * omp-expand.cc: Likewise. * omp-low.cc: Likewise. * omp-oacc-kernels-decompose.cc: Likewise. * omp-oacc-neuter-broadcast.cc: Likewise. * omp-offload.cc: Likewise. * omp-simd-clone.cc: Likewise. * passes.cc: Likewise. * postreload-gcse.cc: Likewise. * postreload.cc: Likewise. * predict.cc: Likewise. * recog.cc: Likewise. * ree.cc: Likewise. * reg-stack.cc: Likewise. * regcprop.cc: Likewise. * reginfo.cc: Likewise. * regrename.cc: Likewise. * reorg.cc: Likewise. * sancov.cc: Likewise. * sanopt.cc: Likewise. * sched-rgn.cc: Likewise. * stack-ptr-mod.cc: Likewise. * store-motion.cc: Likewise. * tracer.cc: Likewise. * trans-mem.cc: Likewise. * tree-call-cdce.cc: Likewise. * tree-cfg.cc: Likewise. * tree-cfgcleanup.cc: Likewise. * tree-complex.cc: Likewise. * tree-eh.cc: Likewise. * tree-emutls.cc: Likewise. * tree-if-conv.cc: Likewise. * tree-into-ssa.cc: Likewise. * tree-loop-distribution.cc: Likewise. * tree-nrv.cc: Likewise. * tree-object-size.cc: Likewise. * tree-parloops.cc: Likewise. * tree-predcom.cc: Likewise. * tree-profile.cc: Likewise. * tree-sra.cc: Likewise. * tree-ssa-ccp.cc: Likewise. * tree-ssa-copy.cc: Likewise. * tree-ssa-dce.cc: Likewise. * tree-ssa-dom.cc: Likewise. * tree-ssa-dse.cc: Likewise. * tree-ssa-forwprop.cc: Likewise. * tree-ssa-ifcombine.cc: Likewise. * tree-ssa-loop-ch.cc: Likewise. * tree-ssa-loop-im.cc: Likewise. * tree-ssa-loop-ivcanon.cc: Likewise. * tree-ssa-loop-prefetch.cc: Likewise. * tree-ssa-loop-split.cc: Likewise. * tree-ssa-loop-unswitch.cc: Likewise. * tree-ssa-loop.cc: Likewise. * tree-ssa-math-opts.cc: Likewise. * tree-ssa-phiopt.cc: Likewise. * tree-ssa-phiprop.cc: Likewise. * tree-ssa-pre.cc: Likewise. * tree-ssa-reassoc.cc: Likewise. * tree-ssa-sccvn.cc: Likewise. * tree-ssa-sink.cc: Likewise. * tree-ssa-strlen.cc: Likewise. * tree-ssa-structalias.cc: Likewise. * tree-ssa-uncprop.cc: Likewise. * tree-ssa-uninit.cc: Likewise. * tree-ssanames.cc: Likewise. * tree-stdarg.cc: Likewise. * tree-switch-conversion.cc: Likewise. * tree-tailcall.cc: Likewise. * tree-vect-generic.cc: Likewise. * tree-vectorizer.cc: Likewise. * tree-vrp.cc: Likewise. * tsan.cc: Likewise. * ubsan.cc: Likewise. * var-tracking.cc: Likewise. * vtable-verify.cc: Likewise. * web.cc: Likewise. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
This commit is contained in:
parent
6ce49a6e69
commit
725793af78
146 changed files with 769 additions and 552 deletions
|
@ -50,7 +50,7 @@ public:
|
|||
: gimple_opt_pass (pass_data_adjust_alignment, ctxt)
|
||||
{}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
}; // class pass_adjust_alignment
|
||||
|
||||
} // anon namespace
|
||||
|
|
19
gcc/asan.cc
19
gcc/asan.cc
|
@ -4222,9 +4222,15 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_asan (m_ctxt); }
|
||||
virtual bool gate (function *) { return gate_asan () || gate_hwasan (); }
|
||||
virtual unsigned int execute (function *) { return asan_instrument (); }
|
||||
opt_pass * clone () final override { return new pass_asan (m_ctxt); }
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return gate_asan () || gate_hwasan ();
|
||||
}
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return asan_instrument ();
|
||||
}
|
||||
|
||||
}; // class pass_asan
|
||||
|
||||
|
@ -4259,11 +4265,14 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return !optimize && (gate_asan () || gate_hwasan ());
|
||||
}
|
||||
virtual unsigned int execute (function *) { return asan_instrument (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return asan_instrument ();
|
||||
}
|
||||
|
||||
}; // class pass_asan_O0
|
||||
|
||||
|
|
|
@ -1692,7 +1692,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
if (!AUTO_INC_DEC)
|
||||
return false;
|
||||
|
@ -1701,7 +1701,7 @@ public:
|
|||
}
|
||||
|
||||
|
||||
unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_inc_dec
|
||||
|
||||
|
|
|
@ -1752,13 +1752,13 @@ public:
|
|||
}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool
|
||||
gate (function *)
|
||||
bool
|
||||
gate (function *) final override
|
||||
{
|
||||
return flag_auto_profile;
|
||||
}
|
||||
virtual unsigned int
|
||||
execute (function *)
|
||||
unsigned int
|
||||
execute (function *) final override
|
||||
{
|
||||
return autofdo::auto_profile ();
|
||||
}
|
||||
|
|
|
@ -2633,7 +2633,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
if (targetm.cannot_modify_jumps_p ())
|
||||
return false;
|
||||
|
@ -2641,7 +2641,7 @@ public:
|
|||
&& (flag_reorder_blocks || flag_reorder_blocks_and_partition));
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_reorder_blocks
|
||||
|
||||
|
@ -2794,8 +2794,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_duplicate_computed_gotos
|
||||
|
||||
|
@ -2937,8 +2937,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_partition_blocks
|
||||
|
||||
|
|
|
@ -3227,7 +3227,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_jump
|
||||
|
||||
|
@ -3274,11 +3274,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_thread_jumps && flag_expensive_optimizations;
|
||||
}
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_jump_after_combine
|
||||
|
||||
|
@ -3322,7 +3322,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
cleanup_cfg (flag_crossjumping ? CLEANUP_CROSSJUMP : 0);
|
||||
return 0;
|
||||
|
|
|
@ -6573,7 +6573,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_expand
|
||||
|
||||
|
|
|
@ -483,7 +483,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_free_cfg
|
||||
|
||||
|
@ -3698,7 +3698,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
cfg_layout_initialize (0);
|
||||
return 0;
|
||||
|
@ -3737,7 +3737,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_outof_cfg_layout_mode
|
||||
|
||||
|
|
|
@ -290,7 +290,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_build_cgraph_edges
|
||||
|
||||
|
@ -484,8 +484,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_rebuild_cgraph_edges (m_ctxt); }
|
||||
virtual unsigned int execute (function *)
|
||||
opt_pass * clone () final override
|
||||
{
|
||||
return new pass_rebuild_cgraph_edges (m_ctxt);
|
||||
}
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return cgraph_edge::rebuild_edges ();
|
||||
}
|
||||
|
@ -524,10 +527,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () {
|
||||
opt_pass * clone () final override {
|
||||
return new pass_remove_cgraph_callee_edges (m_ctxt);
|
||||
}
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_remove_cgraph_callee_edges
|
||||
|
||||
|
|
|
@ -823,8 +823,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_stack_adjustments ();
|
||||
}
|
||||
|
|
|
@ -15015,8 +15015,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return (optimize > 0); }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return (optimize > 0); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_combine ();
|
||||
}
|
||||
|
|
|
@ -954,7 +954,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* Setting this target hook value is how a backend indicates the need. */
|
||||
if (targetm.flags_regnum == INVALID_REGNUM)
|
||||
|
@ -962,7 +962,7 @@ public:
|
|||
return flag_compare_elim_after_reload;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_compare_elim_after_reload ();
|
||||
}
|
||||
|
|
|
@ -1880,13 +1880,13 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return TARGET_AVX && TARGET_VZEROUPPER
|
||||
&& flag_expensive_optimizations && !optimize_size;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_insert_vzeroupper ();
|
||||
}
|
||||
|
@ -1915,23 +1915,23 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return ((!timode_p || TARGET_64BIT)
|
||||
&& TARGET_STV && TARGET_SSE2 && optimize > 1);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return convert_scalars_to_vector (timode_p);
|
||||
}
|
||||
|
||||
opt_pass *clone ()
|
||||
opt_pass *clone () final override
|
||||
{
|
||||
return new pass_stv (m_ctxt);
|
||||
}
|
||||
|
||||
void set_pass_param (unsigned int n, bool param)
|
||||
void set_pass_param (unsigned int n, bool param) final override
|
||||
{
|
||||
gcc_assert (n == 0);
|
||||
timode_p = param;
|
||||
|
@ -2142,14 +2142,14 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
need_endbr = (flag_cf_protection & CF_BRANCH) != 0;
|
||||
patchable_area_size = crtl->patch_area_size - crtl->patch_area_entry;
|
||||
return need_endbr || patchable_area_size;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
timevar_push (TV_MACH_DEP);
|
||||
rest_of_insert_endbr_and_patchable_area (need_endbr,
|
||||
|
@ -2406,7 +2406,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (TARGET_AVX
|
||||
&& TARGET_SSE_PARTIAL_REG_DEPENDENCY
|
||||
|
@ -2415,7 +2415,7 @@ public:
|
|||
&& optimize_function_for_speed_p (cfun));
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return remove_partial_avx_dependency ();
|
||||
}
|
||||
|
|
|
@ -213,9 +213,9 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_coroutines; };
|
||||
bool gate (function *) final override { return flag_coroutines; };
|
||||
|
||||
virtual unsigned int execute (function *f ATTRIBUTE_UNUSED)
|
||||
unsigned int execute (function *f ATTRIBUTE_UNUSED) final override
|
||||
{
|
||||
return execute_lower_coro_builtins ();
|
||||
}
|
||||
|
@ -511,12 +511,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *f)
|
||||
bool gate (function *f) final override
|
||||
{
|
||||
return flag_coroutines && f->coroutine_component;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *f ATTRIBUTE_UNUSED)
|
||||
unsigned int execute (function *f ATTRIBUTE_UNUSED) final override
|
||||
{
|
||||
return execute_early_expand_coro_ifns ();
|
||||
}
|
||||
|
|
|
@ -1953,15 +1953,18 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_rtl_cprop (m_ctxt); }
|
||||
virtual bool gate (function *fun)
|
||||
opt_pass * clone () final override { return new pass_rtl_cprop (m_ctxt); }
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
return optimize > 0 && flag_gcse
|
||||
&& !fun->calls_setjmp
|
||||
&& dbg_cnt (cprop);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return execute_rtl_cprop (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_rtl_cprop ();
|
||||
}
|
||||
|
||||
}; // class pass_rtl_cprop
|
||||
|
||||
|
|
18
gcc/cse.cc
18
gcc/cse.cc
|
@ -7571,8 +7571,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return optimize > 0; }
|
||||
virtual unsigned int execute (function *) { return rest_of_handle_cse (); }
|
||||
bool gate (function *) final override { return optimize > 0; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_cse ();
|
||||
}
|
||||
|
||||
}; // class pass_cse
|
||||
|
||||
|
@ -7642,12 +7645,15 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 0 && flag_rerun_cse_after_loop;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return rest_of_handle_cse2 (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_cse2 ();
|
||||
}
|
||||
|
||||
}; // class pass_cse2
|
||||
|
||||
|
@ -7715,12 +7721,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 0 && flag_rerun_cse_after_global_opts;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_cse_after_global_opts ();
|
||||
}
|
||||
|
|
|
@ -849,12 +849,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 1 && flag_dce && dbg_cnt (dce_ud);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_ud_dce ();
|
||||
}
|
||||
|
@ -1280,12 +1280,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 0 && flag_dce && dbg_cnt (dce_fast);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_fast_dce ();
|
||||
}
|
||||
|
|
|
@ -741,8 +741,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return optimize > 0; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return optimize > 0; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_df_initialize ();
|
||||
}
|
||||
|
@ -781,8 +781,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return optimize == 0; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return optimize == 0; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_df_initialize ();
|
||||
}
|
||||
|
@ -848,7 +848,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_df_finish ();
|
||||
}
|
||||
|
|
14
gcc/dse.cc
14
gcc/dse.cc
|
@ -3755,12 +3755,15 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 0 && flag_dse && dbg_cnt (dse1);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return rest_of_handle_dse (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_dse ();
|
||||
}
|
||||
|
||||
}; // class pass_rtl_dse1
|
||||
|
||||
|
@ -3795,12 +3798,15 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 0 && flag_dse && dbg_cnt (dse2);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return rest_of_handle_dse (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_dse ();
|
||||
}
|
||||
|
||||
}; // class pass_rtl_dse2
|
||||
|
||||
|
|
|
@ -3788,8 +3788,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *) { return execute_dwarf2_frame (); }
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_dwarf2_frame ();
|
||||
}
|
||||
|
||||
}; // class pass_dwarf2_frame
|
||||
|
||||
|
|
|
@ -2615,12 +2615,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 1 && NUM_POLY_INT_COEFFS > 1;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *f)
|
||||
unsigned int execute (function *f) final override
|
||||
{
|
||||
auto_sbitmap selected_modes (NUM_MACHINE_MODES);
|
||||
bitmap_clear (selected_modes);
|
||||
|
|
|
@ -2047,7 +2047,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return set_nothrow_function_flags ();
|
||||
}
|
||||
|
@ -2722,8 +2722,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
int ret = convert_to_eh_region_ranges ();
|
||||
maybe_add_nop_after_section_switch ();
|
||||
|
|
14
gcc/final.cc
14
gcc/final.cc
|
@ -804,7 +804,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return compute_alignments (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return compute_alignments ();
|
||||
}
|
||||
|
||||
}; // class pass_compute_alignments
|
||||
|
||||
|
@ -4356,7 +4359,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return rest_of_handle_final (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_final ();
|
||||
}
|
||||
|
||||
}; // class pass_final
|
||||
|
||||
|
@ -4400,7 +4406,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_shorten_branches ();
|
||||
}
|
||||
|
@ -4575,7 +4581,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_clean_state ();
|
||||
}
|
||||
|
|
|
@ -2029,7 +2029,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return instantiate_virtual_regs ();
|
||||
}
|
||||
|
@ -6516,7 +6516,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_check_leaf_regs ();
|
||||
}
|
||||
|
@ -6617,7 +6617,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_thread_prologue_and_epilogue ();
|
||||
}
|
||||
|
@ -6655,7 +6655,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_zero_call_used_regs
|
||||
|
||||
|
@ -6926,7 +6926,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_match_asm_constraints
|
||||
|
||||
|
|
|
@ -1029,8 +1029,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return gate_fwprop (); }
|
||||
virtual unsigned int execute (function *) { return fwprop (false); }
|
||||
bool gate (function *) final override { return gate_fwprop (); }
|
||||
unsigned int execute (function *) final override { return fwprop (false); }
|
||||
|
||||
}; // class pass_rtl_fwprop
|
||||
|
||||
|
@ -1065,8 +1065,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return gate_fwprop (); }
|
||||
virtual unsigned int execute (function *) { return fwprop (true); }
|
||||
bool gate (function *) final override { return gate_fwprop (); }
|
||||
unsigned int execute (function *) final override { return fwprop (true); }
|
||||
|
||||
}; // class pass_rtl_fwprop_addr
|
||||
|
||||
|
|
14
gcc/gcse.cc
14
gcc/gcse.cc
|
@ -4049,8 +4049,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *) { return execute_rtl_pre (); }
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_rtl_pre ();
|
||||
}
|
||||
|
||||
}; // class pass_rtl_pre
|
||||
|
||||
|
@ -4099,8 +4102,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *) { return execute_rtl_hoist (); }
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_rtl_hoist ();
|
||||
}
|
||||
|
||||
}; // class pass_rtl_hoist
|
||||
|
||||
|
|
|
@ -71,11 +71,15 @@ public:
|
|||
pass_harden_compares (gcc::context *ctxt)
|
||||
: gimple_opt_pass (pass_data_harden_compares, ctxt)
|
||||
{}
|
||||
opt_pass *clone () { return new pass_harden_compares (m_ctxt); }
|
||||
virtual bool gate (function *) {
|
||||
opt_pass *clone () final override
|
||||
{
|
||||
return new pass_harden_compares (m_ctxt);
|
||||
}
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_harden_compares;
|
||||
}
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
};
|
||||
|
||||
/* Define a pass to harden conditionals in branches. This pass must
|
||||
|
@ -102,11 +106,15 @@ public:
|
|||
pass_harden_conditional_branches (gcc::context *ctxt)
|
||||
: gimple_opt_pass (pass_data_harden_conditional_branches, ctxt)
|
||||
{}
|
||||
opt_pass *clone () { return new pass_harden_conditional_branches (m_ctxt); }
|
||||
virtual bool gate (function *) {
|
||||
opt_pass *clone () final override
|
||||
{
|
||||
return new pass_harden_conditional_branches (m_ctxt);
|
||||
}
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_harden_conditional_branches;
|
||||
}
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -480,13 +480,13 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (jump_table_cluster::is_enabled ()
|
||||
|| bit_test_cluster::is_enabled ());
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_if_to_switch
|
||||
|
||||
|
|
|
@ -355,12 +355,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *fun)
|
||||
unsigned int execute (function *fun) final override
|
||||
{
|
||||
return gimple_expand_vec_exprs (fun);
|
||||
}
|
||||
|
|
|
@ -66,9 +66,9 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_laddress (m_ctxt); }
|
||||
virtual bool gate (function *) { return optimize != 0; }
|
||||
virtual unsigned int execute (function *);
|
||||
opt_pass * clone () final override { return new pass_laddress (m_ctxt); }
|
||||
bool gate (function *) final override { return optimize != 0; }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_laddress
|
||||
|
||||
|
|
|
@ -1705,9 +1705,9 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_linterchange (m_ctxt); }
|
||||
virtual bool gate (function *) { return flag_loop_interchange; }
|
||||
virtual unsigned int execute (function *);
|
||||
opt_pass * clone () final override { return new pass_linterchange (m_ctxt); }
|
||||
bool gate (function *) final override { return flag_loop_interchange; }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_linterchange
|
||||
|
||||
|
|
|
@ -641,8 +641,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_unroll_jam != 0; }
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override { return flag_unroll_jam != 0; }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -1782,8 +1782,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_version_loops_for_strides; }
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_version_loops_for_strides;
|
||||
}
|
||||
unsigned int execute (function *) final override;
|
||||
};
|
||||
|
||||
unsigned int
|
||||
|
|
|
@ -192,7 +192,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return lower_function_body (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return lower_function_body ();
|
||||
}
|
||||
|
||||
}; // class pass_lower_cf
|
||||
|
||||
|
|
|
@ -945,9 +945,9 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_backprop (m_ctxt); }
|
||||
virtual bool gate (function *) { return flag_ssa_backprop; }
|
||||
virtual unsigned int execute (function *);
|
||||
opt_pass * clone () final override { return new pass_backprop (m_ctxt); }
|
||||
bool gate (function *) final override { return flag_ssa_backprop; }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_backprop
|
||||
|
||||
|
|
|
@ -377,12 +377,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_early_vrp (m_ctxt); }
|
||||
virtual bool gate (function *)
|
||||
opt_pass * clone () final override { return new pass_early_vrp (m_ctxt); }
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_tree_vrp != 0;
|
||||
}
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{ return execute_early_vrp (); }
|
||||
|
||||
}; // class pass_vrp
|
||||
|
|
|
@ -969,8 +969,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_isolate_erroneous_paths (m_ctxt); }
|
||||
virtual bool gate (function *)
|
||||
opt_pass * clone () final override
|
||||
{
|
||||
return new pass_isolate_erroneous_paths (m_ctxt);
|
||||
}
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* If we do not have a suitable builtin function for the trap statement,
|
||||
then do not perform the optimization. */
|
||||
|
@ -979,7 +982,7 @@ public:
|
|||
|| warn_null_dereference);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return gimple_ssa_isolate_erroneous_paths ();
|
||||
}
|
||||
|
|
|
@ -126,9 +126,9 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return warn_nonnull_compare; }
|
||||
bool gate (function *) final override { return warn_nonnull_compare; }
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_warn_nonnull_compare
|
||||
|
||||
|
|
|
@ -579,9 +579,12 @@ class pass_split_paths : public gimple_opt_pass
|
|||
: gimple_opt_pass (pass_data_split_paths, ctxt)
|
||||
{}
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_split_paths (m_ctxt); }
|
||||
virtual bool gate (function *) { return gate_split_paths (); }
|
||||
virtual unsigned int execute (function *) { return execute_split_paths (); }
|
||||
opt_pass * clone () final override { return new pass_split_paths (m_ctxt); }
|
||||
bool gate (function *) final override { return gate_split_paths (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_split_paths ();
|
||||
}
|
||||
|
||||
}; // class pass_split_paths
|
||||
|
||||
|
|
|
@ -1037,12 +1037,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_expensive_optimizations && optimize && BITS_PER_UNIT == 8;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_optimize_bswap
|
||||
|
||||
|
@ -2433,8 +2433,8 @@ public:
|
|||
/* Pass not supported for PDP-endian, nor for insane hosts or
|
||||
target character sizes where native_{encode,interpret}_expr
|
||||
doesn't work properly. */
|
||||
virtual bool
|
||||
gate (function *)
|
||||
bool
|
||||
gate (function *) final override
|
||||
{
|
||||
return flag_store_merging
|
||||
&& BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN
|
||||
|
@ -2442,7 +2442,7 @@ public:
|
|||
&& BITS_PER_UNIT == 8;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
private:
|
||||
hash_map<tree_operand_hash, class imm_store_chain_info *> m_stores;
|
||||
|
|
|
@ -4002,8 +4002,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_tree_slsr; }
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override { return flag_tree_slsr; }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_strength_reduction
|
||||
|
||||
|
|
|
@ -2075,13 +2075,13 @@ class pass_waccess : public gimple_opt_pass
|
|||
|
||||
~pass_waccess ();
|
||||
|
||||
opt_pass *clone ();
|
||||
opt_pass *clone () final override;
|
||||
|
||||
virtual bool gate (function *);
|
||||
bool gate (function *) final override;
|
||||
|
||||
void set_pass_param (unsigned, bool);
|
||||
void set_pass_param (unsigned, bool) final override;
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
private:
|
||||
/* Not copyable or assignable. */
|
||||
|
|
|
@ -58,8 +58,8 @@ public:
|
|||
pass_walloca (gcc::context *ctxt)
|
||||
: gimple_opt_pass(pass_data_walloca, ctxt), xlimit_certain_p (false)
|
||||
{}
|
||||
opt_pass *clone () { return new pass_walloca (m_ctxt); }
|
||||
void set_pass_param (unsigned int n, bool param)
|
||||
opt_pass *clone () final override { return new pass_walloca (m_ctxt); }
|
||||
void set_pass_param (unsigned int n, bool param) final override
|
||||
{
|
||||
gcc_assert (n == 0);
|
||||
// Set to true to enable only warnings for alloca calls that
|
||||
|
@ -69,8 +69,8 @@ public:
|
|||
// the "may be too large" kind.
|
||||
xlimit_certain_p = param;
|
||||
}
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
private:
|
||||
// Set to TRUE the first time we run this pass on a function.
|
||||
|
|
|
@ -64,8 +64,8 @@ class pass_wrestrict : public gimple_opt_pass
|
|||
public:
|
||||
pass_wrestrict (gcc::context *);
|
||||
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
void check_call (gimple *);
|
||||
|
||||
|
|
|
@ -52,9 +52,9 @@ public:
|
|||
pass_warn_recursion (gcc::context *);
|
||||
|
||||
private:
|
||||
virtual bool gate (function *) { return warn_infinite_recursion; }
|
||||
bool gate (function *) final override { return warn_infinite_recursion; }
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
bool find_function_exit (basic_block);
|
||||
|
||||
|
|
|
@ -574,7 +574,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return gate_graphite_transforms (); }
|
||||
bool gate (function *) final override { return gate_graphite_transforms (); }
|
||||
|
||||
}; // class pass_graphite
|
||||
|
||||
|
@ -609,8 +609,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return gate_graphite_transforms (); }
|
||||
virtual unsigned int execute (function *fun) { return graphite_transforms (fun); }
|
||||
bool gate (function *) final override { return gate_graphite_transforms (); }
|
||||
unsigned int execute (function *fun) final override
|
||||
{
|
||||
return graphite_transforms (fun);
|
||||
}
|
||||
|
||||
}; // class pass_graphite_transforms
|
||||
|
||||
|
|
12
gcc/ifcvt.cc
12
gcc/ifcvt.cc
|
@ -5934,12 +5934,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (optimize > 0) && dbg_cnt (if_conversion);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_if_conversion ();
|
||||
}
|
||||
|
@ -5981,13 +5981,13 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 0 && flag_if_conversion
|
||||
&& dbg_cnt (if_after_combine);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
if_convert (true);
|
||||
return 0;
|
||||
|
@ -6027,13 +6027,13 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize > 0 && flag_if_conversion2
|
||||
&& dbg_cnt (if_after_reload);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
if_convert (true);
|
||||
return 0;
|
||||
|
|
|
@ -153,8 +153,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return optimize > 0; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return optimize > 0; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
initialize_uninitialized_regs ();
|
||||
return 0;
|
||||
|
|
|
@ -420,8 +420,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *) { return ipa_comdats (); }
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override { return ipa_comdats (); }
|
||||
|
||||
}; // class pass_ipa_comdats
|
||||
|
||||
|
|
|
@ -6657,14 +6657,14 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* FIXME: We should remove the optimize check after we ensure we never run
|
||||
IPA passes when not optimizing. */
|
||||
return (flag_ipa_cp && optimize) || in_lto_p;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return ipcp_driver (); }
|
||||
unsigned int execute (function *) final override { return ipcp_driver (); }
|
||||
|
||||
}; // class pass_ipa_cp
|
||||
|
||||
|
|
|
@ -3969,7 +3969,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* In LTO, always run the IPA passes and decide on function basis if the
|
||||
pass is enabled. */
|
||||
|
@ -3982,7 +3982,7 @@ public:
|
|||
&& optimize);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return ipa_devirt (); }
|
||||
unsigned int execute (function *) final override { return ipa_devirt (); }
|
||||
|
||||
}; // class pass_ipa_devirt
|
||||
|
||||
|
@ -4361,12 +4361,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (in_lto_p || flag_lto);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -4846,8 +4846,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_local_fn_summary (m_ctxt); }
|
||||
virtual unsigned int execute (function *)
|
||||
opt_pass * clone () final override
|
||||
{
|
||||
return new pass_local_fn_summary (m_ctxt);
|
||||
}
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return compute_fn_summary_for_current ();
|
||||
}
|
||||
|
@ -4889,14 +4892,17 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass *clone () { return new pass_ipa_free_fn_summary (m_ctxt); }
|
||||
void set_pass_param (unsigned int n, bool param)
|
||||
opt_pass *clone () final override
|
||||
{
|
||||
return new pass_ipa_free_fn_summary (m_ctxt);
|
||||
}
|
||||
void set_pass_param (unsigned int n, bool param) final override
|
||||
{
|
||||
gcc_assert (n == 0);
|
||||
small_p = param;
|
||||
}
|
||||
virtual bool gate (function *) { return true; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return true; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
ipa_free_fn_summary ();
|
||||
/* Free ipa-prop structures if they are no longer needed. */
|
||||
|
@ -4950,7 +4956,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return 0; }
|
||||
unsigned int execute (function *) final override { return 0; }
|
||||
|
||||
}; // class pass_ipa_fn_summary
|
||||
|
||||
|
|
|
@ -1173,7 +1173,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return free_lang_data (); }
|
||||
unsigned int execute (function *) final override { return free_lang_data (); }
|
||||
|
||||
}; // class pass_ipa_free_lang_data
|
||||
|
||||
|
|
|
@ -3638,12 +3638,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return in_lto_p || flag_ipa_icf_variables || flag_ipa_icf_functions;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return ipa_icf_driver();
|
||||
}
|
||||
|
|
|
@ -3100,7 +3100,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_early_inline
|
||||
|
||||
|
@ -3150,7 +3150,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return ipa_inline (); }
|
||||
unsigned int execute (function *) final override { return ipa_inline (); }
|
||||
|
||||
}; // class pass_ipa_inline
|
||||
|
||||
|
|
|
@ -3508,15 +3508,15 @@ class pass_modref : public gimple_opt_pass
|
|||
: gimple_opt_pass (pass_data_modref, ctxt) {}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass *clone ()
|
||||
opt_pass *clone () final override
|
||||
{
|
||||
return new pass_modref (m_ctxt);
|
||||
}
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_ipa_modref;
|
||||
}
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
};
|
||||
|
||||
/* Encode TT to the output block OB using the summary streaming API. */
|
||||
|
@ -4170,12 +4170,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass *clone () { return new pass_ipa_modref (m_ctxt); }
|
||||
virtual bool gate (function *)
|
||||
opt_pass *clone () final override { return new pass_ipa_modref (m_ctxt); }
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -1053,8 +1053,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_ipa_profile || in_lto_p; }
|
||||
virtual unsigned int execute (function *) { return ipa_profile (); }
|
||||
bool gate (function *) final override { return flag_ipa_profile || in_lto_p; }
|
||||
unsigned int execute (function *) final override { return ipa_profile (); }
|
||||
|
||||
}; // class pass_ipa_profile
|
||||
|
||||
|
|
|
@ -168,8 +168,8 @@ public:
|
|||
pass_ipa_pure_const(gcc::context *ctxt);
|
||||
|
||||
/* opt_pass methods: */
|
||||
bool gate (function *) { return gate_pure_const (); }
|
||||
unsigned int execute (function *fun);
|
||||
bool gate (function *) final override { return gate_pure_const (); }
|
||||
unsigned int execute (function *fun) final override;
|
||||
|
||||
void register_hooks (void);
|
||||
|
||||
|
@ -2154,9 +2154,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_local_pure_const (m_ctxt); }
|
||||
virtual bool gate (function *) { return gate_pure_const (); }
|
||||
virtual unsigned int execute (function *);
|
||||
opt_pass * clone () final override
|
||||
{
|
||||
return new pass_local_pure_const (m_ctxt);
|
||||
}
|
||||
bool gate (function *) final override { return gate_pure_const (); }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_local_pure_const
|
||||
|
||||
|
@ -2270,8 +2273,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return warn_suggest_attribute_noreturn; }
|
||||
virtual unsigned int execute (function *fun)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return warn_suggest_attribute_noreturn;
|
||||
}
|
||||
unsigned int execute (function *fun) final override
|
||||
{
|
||||
if (!TREE_THIS_VOLATILE (current_function_decl)
|
||||
&& EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (fun)->preds) == 0)
|
||||
|
@ -2316,9 +2322,9 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_nothrow (m_ctxt); }
|
||||
virtual bool gate (function *) { return optimize; }
|
||||
virtual unsigned int execute (function *);
|
||||
opt_pass * clone () final override { return new pass_nothrow (m_ctxt); }
|
||||
bool gate (function *) final override { return optimize; }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_nothrow
|
||||
|
||||
|
|
|
@ -1299,14 +1299,14 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return ((in_lto_p || flag_ipa_reference)
|
||||
/* Don't bother doing anything if the program has errors. */
|
||||
&& !seen_error ());
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return propagate (); }
|
||||
unsigned int execute (function *) final override { return propagate (); }
|
||||
|
||||
}; // class pass_ipa_reference
|
||||
|
||||
|
|
|
@ -1915,8 +1915,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_split_functions ();
|
||||
}
|
||||
|
@ -1974,8 +1974,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_feedback_split_functions ();
|
||||
}
|
||||
|
|
|
@ -4049,14 +4049,17 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* TODO: We should remove the optimize check after we ensure we never run
|
||||
IPA passes when not optimizing. */
|
||||
return (flag_ipa_sra && optimize);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return ipa_sra_analysis (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return ipa_sra_analysis ();
|
||||
}
|
||||
|
||||
}; // class pass_ipa_sra
|
||||
|
||||
|
|
|
@ -959,12 +959,12 @@ public:
|
|||
|
||||
/* opt_pass methods: */
|
||||
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* Do not re-run on ltrans stage. */
|
||||
return !flag_ltrans;
|
||||
}
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return whole_program_function_and_variable_visibility ();
|
||||
}
|
||||
|
@ -988,7 +988,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return function_and_variable_visibility (flag_whole_program && !flag_lto);
|
||||
}
|
||||
|
|
|
@ -1342,8 +1342,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *) { return ipa_cdtor_merge (); }
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return ipa_cdtor_merge ();
|
||||
}
|
||||
|
||||
}; // class pass_ipa_cdtor_merge
|
||||
|
||||
|
@ -1565,7 +1568,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return ipa_single_use (); }
|
||||
unsigned int execute (function *) final override { return ipa_single_use (); }
|
||||
|
||||
}; // class pass_ipa_single_use
|
||||
|
||||
|
|
|
@ -6074,11 +6074,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return !targetm.no_register_allocation;
|
||||
}
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
ira (dump_file);
|
||||
return 0;
|
||||
|
@ -6117,11 +6117,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return !targetm.no_register_allocation;
|
||||
}
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
do_reload ();
|
||||
return 0;
|
||||
|
|
|
@ -182,7 +182,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return cleanup_barriers (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return cleanup_barriers ();
|
||||
}
|
||||
|
||||
}; // class pass_cleanup_barriers
|
||||
|
||||
|
|
|
@ -357,7 +357,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
bool gate (function *) final override;
|
||||
|
||||
}; // class pass_loop2
|
||||
|
||||
|
@ -429,7 +429,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return rtl_loop_init (); }
|
||||
unsigned int execute (function *) final override { return rtl_loop_init (); }
|
||||
|
||||
}; // class pass_rtl_loop_init
|
||||
|
||||
|
@ -467,7 +467,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_rtl_loop_done
|
||||
|
||||
|
@ -523,8 +523,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_move_loop_invariants; }
|
||||
virtual unsigned int execute (function *fun)
|
||||
bool gate (function *) final override { return flag_move_loop_invariants; }
|
||||
unsigned int execute (function *fun) final override
|
||||
{
|
||||
if (number_of_loops (fun) > 1)
|
||||
move_loop_invariants ();
|
||||
|
@ -565,12 +565,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (flag_unroll_loops || flag_unroll_all_loops || cfun->has_unroll);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_rtl_unroll_loops
|
||||
|
||||
|
@ -625,8 +625,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_rtl_doloop
|
||||
|
||||
|
|
|
@ -1769,8 +1769,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_split_wide_types != 0; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return flag_split_wide_types != 0; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
decompose_multiword_subregs (false);
|
||||
return 0;
|
||||
|
@ -1811,9 +1811,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_split_wide_types
|
||||
&& flag_split_wide_types_early; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_split_wide_types && flag_split_wide_types_early;
|
||||
}
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
decompose_multiword_subregs (true);
|
||||
return 0;
|
||||
|
@ -1854,8 +1856,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_split_wide_types; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return flag_split_wide_types; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
decompose_multiword_subregs (true);
|
||||
return 0;
|
||||
|
|
|
@ -893,8 +893,8 @@ public:
|
|||
/* opt_pass methods: */
|
||||
/* The epiphany backend creates a second instance of this pass, so we need
|
||||
a clone method. */
|
||||
opt_pass * clone () { return new pass_mode_switching (m_ctxt); }
|
||||
virtual bool gate (function *)
|
||||
opt_pass * clone () final override { return new pass_mode_switching (m_ctxt); }
|
||||
bool gate (function *) final override
|
||||
{
|
||||
#ifdef OPTIMIZE_MODE_SWITCHING
|
||||
return true;
|
||||
|
@ -903,7 +903,7 @@ public:
|
|||
#endif
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
#ifdef OPTIMIZE_MODE_SWITCHING
|
||||
optimize_mode_switching ();
|
||||
|
|
|
@ -3338,12 +3338,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (optimize > 0 && flag_modulo_sched);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_sms
|
||||
|
||||
|
|
|
@ -526,8 +526,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *) { return ipa_target_clone (); }
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return ipa_target_clone ();
|
||||
}
|
||||
};
|
||||
|
||||
bool
|
||||
|
|
|
@ -10625,7 +10625,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
bool gate = ((flag_openacc != 0 || flag_openmp != 0
|
||||
|| flag_openmp_simd != 0)
|
||||
|
@ -10672,12 +10672,18 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *fun)
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
return !(fun->curr_properties & PROP_gimple_eomp);
|
||||
}
|
||||
virtual unsigned int execute (function *) { return execute_expand_omp (); }
|
||||
opt_pass * clone () { return new pass_expand_omp_ssa (m_ctxt); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_expand_omp ();
|
||||
}
|
||||
opt_pass * clone () final override
|
||||
{
|
||||
return new pass_expand_omp_ssa (m_ctxt);
|
||||
}
|
||||
|
||||
}; // class pass_expand_omp_ssa
|
||||
|
||||
|
|
|
@ -14697,7 +14697,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return execute_lower_omp (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_lower_omp ();
|
||||
}
|
||||
|
||||
}; // class pass_lower_omp
|
||||
|
||||
|
@ -15005,11 +15008,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return flag_openacc || flag_openmp || flag_openmp_simd;
|
||||
}
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return diagnose_omp_structured_block_errors ();
|
||||
}
|
||||
|
|
|
@ -1615,12 +1615,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (flag_openacc
|
||||
&& param_openacc_kernels == OPENACC_KERNELS_DECOMPOSE);
|
||||
}
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return omp_oacc_kernels_decompose ();
|
||||
}
|
||||
|
|
|
@ -1945,7 +1945,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *fun)
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
if (!flag_openacc)
|
||||
return false;
|
||||
|
@ -1961,7 +1961,7 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_omp_oacc_neuter_broadcast ();
|
||||
}
|
||||
|
|
|
@ -2450,9 +2450,9 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_openacc; };
|
||||
bool gate (function *) final override { return flag_openacc; };
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_oacc_loop_designation ();
|
||||
}
|
||||
|
@ -2480,9 +2480,9 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_openacc; };
|
||||
bool gate (function *) final override { return flag_openacc; };
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_oacc_device_lower ();
|
||||
}
|
||||
|
@ -2714,13 +2714,13 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *fun)
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
return (!(fun->curr_properties & PROP_gimple_lomp_dev)
|
||||
|| (flag_openmp
|
||||
&& cgraph_node::get (fun->decl)->calls_declare_variant_alt));
|
||||
}
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_omp_device_lower ();
|
||||
}
|
||||
|
@ -2760,7 +2760,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *fun)
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
#ifdef ACCEL_COMPILER
|
||||
return offloading_function_p (fun->decl);
|
||||
|
@ -2770,7 +2770,7 @@ public:
|
|||
#endif
|
||||
}
|
||||
|
||||
virtual unsigned execute (function *);
|
||||
unsigned execute (function *) final override;
|
||||
};
|
||||
|
||||
/* Callback for walk_gimple_stmt used to scan for link var operands. */
|
||||
|
|
|
@ -1819,8 +1819,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *) { return ipa_omp_simd_clone (); }
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return ipa_omp_simd_clone ();
|
||||
}
|
||||
};
|
||||
|
||||
bool
|
||||
|
|
|
@ -417,13 +417,13 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* Don't bother doing anything if the program has errors. */
|
||||
return (!seen_error () && !in_lto_p);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_build_ssa_passes ();
|
||||
}
|
||||
|
@ -451,7 +451,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* Don't bother doing anything if the program has errors. */
|
||||
return (!seen_error () && !in_lto_p);
|
||||
|
@ -480,7 +480,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* Don't bother doing anything if the program has errors. */
|
||||
return (!seen_error () && !in_lto_p);
|
||||
|
@ -531,7 +531,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (optimize >= 1
|
||||
/* Don't bother doing anything if the program has errors. */
|
||||
|
@ -571,7 +571,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return optimize >= 1 && !optimize_debug; }
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize >= 1 && !optimize_debug;
|
||||
}
|
||||
|
||||
}; // class pass_all_optimizations
|
||||
|
||||
|
@ -606,7 +609,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return optimize >= 1 && optimize_debug; }
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return optimize >= 1 && optimize_debug;
|
||||
}
|
||||
|
||||
}; // class pass_all_optimizations_g
|
||||
|
||||
|
@ -641,7 +647,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* Early return if there were errors. We can run afoul of our
|
||||
consistency checks, and there's not really much point in fixing them. */
|
||||
|
@ -681,7 +687,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return reload_completed; }
|
||||
bool gate (function *) final override { return reload_completed; }
|
||||
|
||||
}; // class pass_postreload
|
||||
|
||||
|
@ -716,7 +722,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return reload_completed || targetm.no_register_allocation;
|
||||
}
|
||||
|
@ -756,15 +762,15 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual bool
|
||||
gate (function *fun)
|
||||
bool
|
||||
gate (function *fun) final override
|
||||
{
|
||||
return flag_tree_slp_vectorize
|
||||
&& (fun->pending_TODOs & PENDING_TODO_force_next_scalar_cleanup);
|
||||
}
|
||||
|
||||
virtual unsigned int
|
||||
execute (function *fun)
|
||||
unsigned int
|
||||
execute (function *fun) final override
|
||||
{
|
||||
fun->pending_TODOs &= ~PENDING_TODO_force_next_scalar_cleanup;
|
||||
return 0;
|
||||
|
|
|
@ -1447,13 +1447,16 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *fun)
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
return (optimize > 0 && flag_gcse_after_reload
|
||||
&& optimize_function_for_speed_p (fun));
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return rest_of_handle_gcse2 (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_gcse2 ();
|
||||
}
|
||||
|
||||
}; // class pass_gcse2
|
||||
|
||||
|
|
|
@ -2339,9 +2339,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return (optimize > 0 && reload_completed); }
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (optimize > 0 && reload_completed);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_postreload_cse
|
||||
|
||||
|
|
|
@ -4078,8 +4078,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_guess_branch_prob; }
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override { return flag_guess_branch_prob; }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_profile
|
||||
|
||||
|
@ -4232,14 +4232,17 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_strip_predict_hints (m_ctxt); }
|
||||
void set_pass_param (unsigned int n, bool param)
|
||||
opt_pass * clone () final override
|
||||
{
|
||||
return new pass_strip_predict_hints (m_ctxt);
|
||||
}
|
||||
void set_pass_param (unsigned int n, bool param) final override
|
||||
{
|
||||
gcc_assert (n == 0);
|
||||
early_p = param;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
private:
|
||||
bool early_p;
|
||||
|
|
32
gcc/recog.cc
32
gcc/recog.cc
|
@ -4358,9 +4358,12 @@ public:
|
|||
/* opt_pass methods: */
|
||||
/* The epiphany backend creates a second instance of this pass, so we need
|
||||
a clone method. */
|
||||
opt_pass * clone () { return new pass_peephole2 (m_ctxt); }
|
||||
virtual bool gate (function *) { return (optimize > 0 && flag_peephole2); }
|
||||
virtual unsigned int execute (function *)
|
||||
opt_pass * clone () final override { return new pass_peephole2 (m_ctxt); }
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (optimize > 0 && flag_peephole2);
|
||||
}
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_peephole2 ();
|
||||
}
|
||||
|
@ -4400,8 +4403,11 @@ public:
|
|||
/* opt_pass methods: */
|
||||
/* The epiphany backend creates a second instance of this pass, so
|
||||
we need a clone method. */
|
||||
opt_pass * clone () { return new pass_split_all_insns (m_ctxt); }
|
||||
virtual unsigned int execute (function *)
|
||||
opt_pass * clone () final override
|
||||
{
|
||||
return new pass_split_all_insns (m_ctxt);
|
||||
}
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
split_all_insns ();
|
||||
return 0;
|
||||
|
@ -4440,13 +4446,13 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* If optimizing, then go ahead and split insns now. */
|
||||
return optimize > 0;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
split_all_insns ();
|
||||
return 0;
|
||||
|
@ -4495,12 +4501,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return enable_split_before_sched2 ();
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
split_all_insns ();
|
||||
return 0;
|
||||
|
@ -4539,8 +4545,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
split_all_insns ();
|
||||
return 0;
|
||||
|
@ -4598,7 +4604,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* The placement of the splitting that we do for shorten_branches
|
||||
depends on whether regstack is used by the target or not. */
|
||||
|
@ -4609,7 +4615,7 @@ public:
|
|||
#endif
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return split_all_insns_noflow ();
|
||||
}
|
||||
|
|
|
@ -1403,8 +1403,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return (optimize > 0 && flag_ree); }
|
||||
virtual unsigned int execute (function *) { return rest_of_handle_ree (); }
|
||||
bool gate (function *) final override { return (optimize > 0 && flag_ree); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_ree ();
|
||||
}
|
||||
|
||||
}; // class pass_ree
|
||||
|
||||
|
|
|
@ -3413,7 +3413,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
#ifdef STACK_REGS
|
||||
return true;
|
||||
|
@ -3468,7 +3468,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_stack_regs ();
|
||||
}
|
||||
|
|
|
@ -1293,12 +1293,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (optimize > 0 && (flag_cprop_registers));
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_cprop_hardreg
|
||||
|
||||
|
|
|
@ -953,7 +953,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return reginfo_init (); }
|
||||
unsigned int execute (function *) final override { return reginfo_init (); }
|
||||
|
||||
}; // class pass_reginfo_init
|
||||
|
||||
|
|
|
@ -2012,12 +2012,15 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (optimize > 0 && (flag_rename_registers));
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return regrename_optimize (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return regrename_optimize ();
|
||||
}
|
||||
|
||||
}; // class pass_regrename
|
||||
|
||||
|
|
|
@ -3866,8 +3866,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_delay_slots ();
|
||||
}
|
||||
|
@ -3917,12 +3917,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return targetm.machine_dependent_reorg != 0;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
targetm.machine_dependent_reorg ();
|
||||
return 0;
|
||||
|
|
|
@ -308,17 +308,17 @@ public:
|
|||
|
||||
static const pass_data data;
|
||||
opt_pass *
|
||||
clone ()
|
||||
clone () final override
|
||||
{
|
||||
return new pass_sancov<O0> (m_ctxt);
|
||||
}
|
||||
virtual bool
|
||||
gate (function *fun)
|
||||
bool
|
||||
gate (function *fun) final override
|
||||
{
|
||||
return sanitize_coverage_p (fun->decl) && (!O0 || !optimize);
|
||||
}
|
||||
virtual unsigned int
|
||||
execute (function *fun)
|
||||
unsigned int
|
||||
execute (function *fun) final override
|
||||
{
|
||||
return sancov_pass (fun);
|
||||
}
|
||||
|
|
|
@ -942,7 +942,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* SANITIZE_RETURN is handled in the front-end. When trapping,
|
||||
SANITIZE_UNREACHABLE is handled by builtin_decl_unreachable. */
|
||||
|
@ -951,7 +951,7 @@ public:
|
|||
mask |= SANITIZE_UNREACHABLE;
|
||||
return flag_sanitize & ~mask;
|
||||
}
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_sanopt
|
||||
|
||||
|
|
|
@ -3779,7 +3779,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
#ifdef INSN_SCHEDULING
|
||||
return flag_live_range_shrinkage;
|
||||
|
@ -3788,7 +3788,7 @@ public:
|
|||
#endif
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_live_range_shrinkage ();
|
||||
}
|
||||
|
@ -3826,8 +3826,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *) { return rest_of_handle_sched (); }
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_sched ();
|
||||
}
|
||||
|
||||
}; // class pass_sched
|
||||
|
||||
|
@ -3872,8 +3875,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_sched2 ();
|
||||
}
|
||||
|
@ -3922,8 +3925,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return rest_of_handle_sched_fusion ();
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_stack_ptr_mod
|
||||
|
||||
|
|
|
@ -1243,8 +1243,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *);
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override;
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_rtl_store_motion ();
|
||||
}
|
||||
|
|
|
@ -424,12 +424,12 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
return (optimize > 0 && flag_tracer && flag_reorder_blocks);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_tracer
|
||||
|
||||
|
|
|
@ -864,8 +864,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_tm; }
|
||||
virtual unsigned int execute (function *) { return diagnose_tm_blocks (); }
|
||||
bool gate (function *) final override { return flag_tm; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return diagnose_tm_blocks ();
|
||||
}
|
||||
|
||||
}; // class pass_diagnose_tm_blocks
|
||||
|
||||
|
@ -1850,8 +1853,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_tm; }
|
||||
virtual unsigned int execute (function *) { return execute_lower_tm (); }
|
||||
bool gate (function *) final override { return flag_tm; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_lower_tm ();
|
||||
}
|
||||
|
||||
}; // class pass_lower_tm
|
||||
|
||||
|
@ -2144,7 +2150,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return gate_tm_init (); }
|
||||
bool gate (function *) final override { return gate_tm_init (); }
|
||||
|
||||
}; // class pass_tm_init
|
||||
|
||||
|
@ -3162,7 +3168,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return execute_tm_mark (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_tm_mark ();
|
||||
}
|
||||
|
||||
}; // class pass_tm_mark
|
||||
|
||||
|
@ -3324,7 +3333,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_tm_edges
|
||||
|
||||
|
@ -4085,8 +4094,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_tm && optimize > 0; }
|
||||
virtual unsigned int execute (function *) { return execute_tm_memopt (); }
|
||||
bool gate (function *) final override { return flag_tm && optimize > 0; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_tm_memopt ();
|
||||
}
|
||||
|
||||
}; // class pass_tm_memopt
|
||||
|
||||
|
@ -5667,8 +5679,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_tm; }
|
||||
virtual unsigned int execute (function *) { return ipa_tm_execute (); }
|
||||
bool gate (function *) final override { return flag_tm; }
|
||||
unsigned int execute (function *) final override { return ipa_tm_execute (); }
|
||||
|
||||
}; // class pass_ipa_tm
|
||||
|
||||
|
|
|
@ -1171,7 +1171,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* The limit constants used in the implementation
|
||||
assume IEEE floating point format. Other formats
|
||||
|
@ -1179,7 +1179,7 @@ public:
|
|||
return flag_tree_builtin_call_dce != 0;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_call_cdce
|
||||
|
||||
|
|
|
@ -407,7 +407,10 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return execute_build_cfg (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_build_cfg ();
|
||||
}
|
||||
|
||||
}; // class pass_build_cfg
|
||||
|
||||
|
@ -9209,9 +9212,15 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *) { return split_critical_edges (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return split_critical_edges ();
|
||||
}
|
||||
|
||||
opt_pass * clone () { return new pass_split_crit_edges (m_ctxt); }
|
||||
opt_pass * clone () final override
|
||||
{
|
||||
return new pass_split_crit_edges (m_ctxt);
|
||||
}
|
||||
}; // class pass_split_crit_edges
|
||||
|
||||
} // anon namespace
|
||||
|
@ -9468,7 +9477,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_warn_function_return
|
||||
|
||||
|
@ -9674,8 +9683,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_warn_unused_result; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return flag_warn_unused_result; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
do_warn_unused_result (gimple_body (current_function_decl));
|
||||
return 0;
|
||||
|
@ -9884,8 +9893,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_fixup_cfg (m_ctxt); }
|
||||
virtual unsigned int execute (function *) { return execute_fixup_cfg (); }
|
||||
opt_pass * clone () final override { return new pass_fixup_cfg (m_ctxt); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_fixup_cfg ();
|
||||
}
|
||||
|
||||
}; // class pass_fixup_cfg
|
||||
|
||||
|
|
|
@ -1406,8 +1406,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_merge_phi (m_ctxt); }
|
||||
virtual unsigned int execute (function *);
|
||||
opt_pass * clone () final override { return new pass_merge_phi (m_ctxt); }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_merge_phi
|
||||
|
||||
|
@ -1584,7 +1584,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *)
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return execute_cleanup_cfg_post_optimizing ();
|
||||
}
|
||||
|
|
|
@ -1915,8 +1915,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_lower_complex (m_ctxt); }
|
||||
virtual unsigned int execute (function *) { return tree_lower_complex (); }
|
||||
opt_pass * clone () final override { return new pass_lower_complex (m_ctxt); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return tree_lower_complex ();
|
||||
}
|
||||
|
||||
}; // class pass_lower_complex
|
||||
|
||||
|
@ -1952,14 +1955,17 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *fun)
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
/* With errors, normal optimization passes are not run. If we don't
|
||||
lower complex operations at all, rtl expansion will abort. */
|
||||
return !(fun->curr_properties & PROP_gimple_lcx);
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return tree_lower_complex (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return tree_lower_complex ();
|
||||
}
|
||||
|
||||
}; // class pass_lower_complex_O0
|
||||
|
||||
|
|
|
@ -2176,7 +2176,7 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_lower_eh
|
||||
|
||||
|
@ -3295,8 +3295,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_exceptions != 0; }
|
||||
virtual unsigned int execute (function *)
|
||||
bool gate (function *) final override { return flag_exceptions != 0; }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
refactor_eh_r (gimple_body (current_function_decl));
|
||||
return 0;
|
||||
|
@ -3497,8 +3497,8 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *) { return flag_exceptions != 0; }
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *) final override { return flag_exceptions != 0; }
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_lower_resx
|
||||
|
||||
|
@ -3922,8 +3922,11 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *fun) { return fun->eh->region_tree != NULL; }
|
||||
virtual unsigned int execute (function *);
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
return fun->eh->region_tree != NULL;
|
||||
}
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_lower_eh_dispatch
|
||||
|
||||
|
@ -4859,13 +4862,13 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
opt_pass * clone () { return new pass_cleanup_eh (m_ctxt); }
|
||||
virtual bool gate (function *fun)
|
||||
opt_pass * clone () final override { return new pass_cleanup_eh (m_ctxt); }
|
||||
bool gate (function *fun) final override
|
||||
{
|
||||
return fun->eh != NULL && fun->eh->region_tree != NULL;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *);
|
||||
unsigned int execute (function *) final override;
|
||||
|
||||
}; // class pass_cleanup_eh
|
||||
|
||||
|
|
|
@ -838,13 +838,16 @@ public:
|
|||
{}
|
||||
|
||||
/* opt_pass methods: */
|
||||
virtual bool gate (function *)
|
||||
bool gate (function *) final override
|
||||
{
|
||||
/* If the target supports TLS natively, we need do nothing here. */
|
||||
return !targetm.have_tls;
|
||||
}
|
||||
|
||||
virtual unsigned int execute (function *) { return ipa_lower_emutls (); }
|
||||
unsigned int execute (function *) final override
|
||||
{
|
||||
return ipa_lower_emutls ();
|
||||
}
|
||||
|
||||
}; // class pass_ipa_lower_emutls
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue