Avoids a fixup-cfg and cgraph edge rebuild. Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.
Richard. 2015-03-25 Richard Biener <rguent...@suse.de> * passes.c (pass_manager::execute_early_local_passes): Guard execution of pass_chkp_instrumentation_passes with flag_check_pointer_bounds. (pass_chkp_instrumentation_passes::gate): Likewise. Index: gcc/passes.c =================================================================== --- gcc/passes.c (revision 221633) +++ gcc/passes.c (working copy) @@ -156,7 +156,8 @@ void pass_manager::execute_early_local_passes () { execute_pass_list (cfun, pass_build_ssa_passes_1->sub); - execute_pass_list (cfun, pass_chkp_instrumentation_passes_1->sub); + if (flag_check_pointer_bounds) + execute_pass_list (cfun, pass_chkp_instrumentation_passes_1->sub); execute_pass_list (cfun, pass_local_optimization_passes_1->sub); } @@ -424,7 +425,8 @@ public: virtual bool gate (function *) { /* Don't bother doing anything if the program has errors. */ - return (!seen_error () && !in_lto_p); + return (flag_check_pointer_bounds + && !seen_error () && !in_lto_p); } }; // class pass_chkp_instrumentation_passes