X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fpasses.c;h=0c93ef6d7d0f22ecf685a9aed2bc55ca50806805;hp=d9bf3cca77a41c2606392da133b0ea48d778ba56;hb=a858fcb70e3a0e58282e435098fd34b169199bbc;hpb=b8d89de21839d7c4df1e3215c168a816a298e17d diff --git a/gcc/passes.c b/gcc/passes.c index d9bf3cca77a..0c93ef6d7d0 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -814,7 +814,6 @@ init_optimization_passes (void) p = &all_lto_gen_passes; NEXT_PASS (pass_ipa_lto_gimple_out); - NEXT_PASS (pass_ipa_lto_wpa_fixup); NEXT_PASS (pass_ipa_lto_finish_out); /* This must be the last LTO pass. */ *p = NULL; @@ -1487,10 +1486,20 @@ execute_one_ipa_transform_pass (struct cgraph_node *node, void execute_all_ipa_transforms (void) { + enum cgraph_state old_state = cgraph_state; struct cgraph_node *node; if (!cfun) return; node = cgraph_node (current_function_decl); + + /* Statement verification skip verification of nothorw when + state is IPA_SSA because we do not modify function bodies + after setting the flag on function. Instead we leave it + to fixup_cfg to do such a transformation. We need to temporarily + change the cgraph state so statement verifier before + transform do not fire. */ + cgraph_state = CGRAPH_STATE_IPA_SSA; + if (node->ipa_transforms_to_apply) { unsigned int i; @@ -1504,6 +1513,7 @@ execute_all_ipa_transforms (void) VEC_free (ipa_opt_pass, heap, node->ipa_transforms_to_apply); node->ipa_transforms_to_apply = NULL; } + cgraph_state = old_state; } /* Execute PASS. */