aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-04-21 23:58:50 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-04-21 21:58:50 +0000
commitbc58d7e1bd3aebc1fa0ad81c9ee6b2eddfd89c79 (patch)
tree1322de7c8a1c5d0b32a7b386725bce3c024e3502 /gcc/passes.c
parent2b65cd83e9a09a18d44984ca261b40b84d2eaeab (diff)
downloadgcc-bc58d7e1bd3aebc1fa0ad81c9ee6b2eddfd89c79.zip
gcc-bc58d7e1bd3aebc1fa0ad81c9ee6b2eddfd89c79.tar.gz
gcc-bc58d7e1bd3aebc1fa0ad81c9ee6b2eddfd89c79.tar.bz2
timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
* timevar.def (TV_WHOPR_WPA_FIXUP): Remove. * lto-section-in.c (lto_section_name): Remove wpa_fixup. * lto-wpa-fixup.c: Remove. * Makefile.in (lto-wpa-fixup.o): Remove. * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup. (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA. * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section. * lto.c (lto_fixup_tree): Do not call wpa fixup. (materialize_cgraph): Likewise. From-SVN: r158622
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index d9bf3cc..0c93ef6 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. */