aboutsummaryrefslogtreecommitdiff
path: root/gcc/trans-mem.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2012-09-20 16:35:40 +0000
committerMartin Jambor <mjambor@suse.cz>2012-09-20 16:35:40 +0000
commita704de3f6db56790106a88d3787b918841bb5536 (patch)
treebd0847507cf2cc8fc2505732d6abf2f60dd73989 /gcc/trans-mem.c
parent61e2370527462cc82b24fbd91f145361b9b5ff4f (diff)
2012-09-20 Martin Jambor <mjambor@suse.cz>
* function.c (push_cfun): Check old current_function_decl matches old cfun, set new current_function_decl to the decl of the new cfun. (push_struct_function): Likewise. (pop_cfun): Likewise. (allocate_struct_function): Move call to invoke_set_current_function_hook to the end of the function. * cfgexpand.c (estimated_stack_frame_size): Do not set and restore current_function_decl. * cgraph.c (cgraph_release_function_body): Likewise. * cgraphunit.c (cgraph_process_new_functions): Likewise. (cgraph_add_new_function): Likewise. (cgraph_analyze_function): Likewise. (assemble_thunk): Set cfun to NULL at the end. (expand_function): Move call to set_cfun downwards. * gimple-low.c (record_vars_into): Only check current_function_decl before possibly doing push_cfun. * gimplify.c (gimplify_function_tree): Do not set and restore current_function_decl. * ipa-inline-analysis.c (compute_inline_parameters): Likewise. (inline_analyze_function): Likewise. * ipa-prop.c (ipa_analyze_node): Likewise. * ipa-pure-const.c (analyze_function): Likewise. * lto-streamer-in.c (lto_input_function_body): Do not set current_function_decl. * lto-streamer-out.c (output_function): Do not set and restore current_function_decl. * omp-low.c (finalize_task_copyfn): Likewise. (expand_omp_taskreg): Likewise. (create_task_copyfn): Likewise, move push_cfun up quite a bit. * passes.c (dump_passes): Do not set and restore current_function_decl. (do_per_function): Likewise. (do_per_function_toporder): Likewise. * trans-mem.c (ipa_tm_scan_irr_function): Likewise. (ipa_tm_transform_transaction): Likewise. (ipa_tm_transform_clone): Likewise. (ipa_tm_execute): Likewise. * tree-emutls.c (lower_emutls_function_body): Likewise. * tree-inline.c (initialize_cfun): Do not call pop_cfun. (tree_function_versioning): Do not call push_cfun, do not set and restore current_function_decl. Remove assert checking consistency of cfun and current_function_decl. * tree-profile.c (tree_profiling): Do not set and restore current_function_decl. * tree-sra.c (convert_callers_for_node): Do not set current_function_decl. (convert_callers): Do not restore current_function_decl. (modify_function): Do not set current_function_decl. * tree-ssa-structalias.c (ipa_pta_execute): Do not set and restore current_function_decl. fortran/ * trans-decl.c (gfc_get_extern_function_decl): Push NULL cfun. Do not set and restore current_function_decl. (gfc_init_coarray_decl): Do not set and restore current_function_decl. lto/ * lto.c (lto_materialize_function): Call push_struct_function and pop_cfun. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@191577 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/trans-mem.c')
-rw-r--r--gcc/trans-mem.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index 0b1c8a5f0e7..242b470a54e 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -3987,7 +3987,6 @@ ipa_tm_scan_irr_function (struct cgraph_node *node, bool for_clone)
|| DECL_STRUCT_FUNCTION (node->symbol.decl)->cfg == NULL)
return false;
- current_function_decl = node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
calculate_dominance_info (CDI_DOMINATORS);
@@ -4059,7 +4058,6 @@ ipa_tm_scan_irr_function (struct cgraph_node *node, bool for_clone)
VEC_free (basic_block, heap, queue);
pop_cfun ();
- current_function_decl = NULL;
return ret;
}
@@ -4697,7 +4695,6 @@ ipa_tm_transform_transaction (struct cgraph_node *node)
d = get_cg_data (&node, true);
- current_function_decl = node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
calculate_dominance_info (CDI_DOMINATORS);
@@ -4722,7 +4719,6 @@ ipa_tm_transform_transaction (struct cgraph_node *node)
update_ssa (TODO_update_ssa_only_virtuals);
pop_cfun ();
- current_function_decl = NULL;
}
/* Transform the calls within the transactional clone of NODE. */
@@ -4741,8 +4737,7 @@ ipa_tm_transform_clone (struct cgraph_node *node)
if (!node->callees && !node->indirect_calls && !d->irrevocable_blocks_clone)
return;
- current_function_decl = d->clone->symbol.decl;
- push_cfun (DECL_STRUCT_FUNCTION (current_function_decl));
+ push_cfun (DECL_STRUCT_FUNCTION (d->clone->symbol.decl));
calculate_dominance_info (CDI_DOMINATORS);
need_ssa_rename =
@@ -4753,7 +4748,6 @@ ipa_tm_transform_clone (struct cgraph_node *node)
update_ssa (TODO_update_ssa_only_virtuals);
pop_cfun ();
- current_function_decl = NULL;
}
/* Main entry point for the transactional memory IPA pass. */
@@ -4800,7 +4794,6 @@ ipa_tm_execute (void)
continue;
}
- current_function_decl = node->symbol.decl;
push_cfun (DECL_STRUCT_FUNCTION (node->symbol.decl));
calculate_dominance_info (CDI_DOMINATORS);
@@ -4820,7 +4813,6 @@ ipa_tm_execute (void)
}
pop_cfun ();
- current_function_decl = NULL;
}
/* For every local function on the callee list, scan as if we will be