aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-split.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-08-02 11:40:20 +0000
committerRichard Guenther <rguenther@suse.de>2012-08-02 11:40:20 +0000
commit65ac04853009bd4a971eacc4d03d377a324b35ce (patch)
tree7d44a4c9f671c4b247e1567327eda00cf283e581 /gcc/ipa-split.c
parent838acfa4fc5dc88c7e04b77e9ff7f4cbc51cc6be (diff)
2012-08-02 Richard Guenther <rguenther@suse.de>
* tree-flow.h (set_default_def): Rename to ... (set_ssa_default_def): ... this. Take a struct function argument. (gimple_default_def): Rename to ... (ssa_default_def): ... this. (get_or_create_ssa_default_def): New function. * tree-dfa.c: Likewise. (dump_variable): Adjust. * ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check for used parameters. * ipa-split.c (consider_split): Adjust, avoid repeated default-def lookups. (split_function): Likewise. * lto-streamer-in.c (input_ssa_names): Adjust. * omp-low.c (expand_omp_taskreg): Likewise. * tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun. * tree-complex.c (init_parameter_lattice_values): Adjust. (get_component_ssa_name): Likewise. (update_parameter_components): Likewise. * tree-inline.c (remap_ssa_name): Likewise. (setup_one_parameter): Likewise. (initialize_inlined_parameters): Likewise. (declare_return_variable): Likewise. (expand_call_inline): Likewise. (tree_function_versioning): Likewise. * tree-into-ssa.c (get_default_def_for): Remove. (get_reaching_def): Use get_or_create_ssa_default_def instead. * tree-predcom.c (replace_ref_with): Adjust. * tree-sra.c (get_repl_default_def_ssa_name): Likewise. (is_unused_scalar_param): Likewise. (ptr_parm_has_direct_uses): Likewise. (sra_ipa_reset_debug_stmts): Likewise. * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust. * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. * tree-ssa-live.c (verify_live_on_entry): Likewise. * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise, avoid repeated default def lookups. * tree-ssa-sccvn.c (run_scc_vn): Likewise. * tree-tailcall.c (arg_needs_copy_p): Adjust. (tree_optimize_tail_calls_1): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@190073 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-split.c')
-rw-r--r--gcc/ipa-split.c47
1 files changed, 15 insertions, 32 deletions
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index be21436f0d3..d6aad8977e9 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -438,14 +438,17 @@ consider_split (struct split_point *current, bitmap non_ssa_vars,
return;
}
}
- else if (gimple_default_def (cfun, parm)
- && bitmap_bit_p (current->ssa_names_to_pass,
- SSA_NAME_VERSION (gimple_default_def
- (cfun, parm))))
+ else
{
- if (!VOID_TYPE_P (TREE_TYPE (parm)))
- call_overhead += estimate_move_cost (TREE_TYPE (parm));
- num_args++;
+ tree ddef = ssa_default_def (cfun, parm);
+ if (ddef
+ && bitmap_bit_p (current->ssa_names_to_pass,
+ SSA_NAME_VERSION (ddef)))
+ {
+ if (!VOID_TYPE_P (TREE_TYPE (parm)))
+ call_overhead += estimate_move_cost (TREE_TYPE (parm));
+ num_args++;
+ }
}
}
if (!VOID_TYPE_P (TREE_TYPE (current_function_decl)))
@@ -1056,7 +1059,7 @@ split_function (struct split_point *split_point)
bool split_part_return_p = false;
gimple last_stmt = NULL;
unsigned int i;
- tree arg;
+ tree arg, ddef;
if (dump_file)
{
@@ -1074,24 +1077,16 @@ split_function (struct split_point *split_point)
parm; parm = DECL_CHAIN (parm), num++)
if (args_to_skip
&& (!is_gimple_reg (parm)
- || !gimple_default_def (cfun, parm)
+ || (ddef = ssa_default_def (cfun, parm)) == NULL_TREE
|| !bitmap_bit_p (split_point->ssa_names_to_pass,
- SSA_NAME_VERSION (gimple_default_def (cfun,
- parm)))))
+ SSA_NAME_VERSION (ddef))))
bitmap_set_bit (args_to_skip, num);
else
{
/* This parm might not have been used up to now, but is going to be
used, hence register it. */
if (is_gimple_reg (parm))
- {
- arg = gimple_default_def (cfun, parm);
- if (!arg)
- {
- arg = make_ssa_name (parm, gimple_build_nop ());
- set_default_def (parm, arg);
- }
- }
+ arg = get_or_create_ssa_default_def (cfun, parm);
else
arg = parm;
@@ -1356,19 +1351,7 @@ split_function (struct split_point *split_point)
assigned to RESULT_DECL (that is pointer to return value).
Look it up or create new one if it is missing. */
if (DECL_BY_REFERENCE (retval))
- {
- tree retval_name;
- if ((retval_name = gimple_default_def (cfun, retval))
- != NULL)
- retval = retval_name;
- else
- {
- retval_name = make_ssa_name (retval,
- gimple_build_nop ());
- set_default_def (retval, retval_name);
- retval = retval_name;
- }
- }
+ retval = get_or_create_ssa_default_def (cfun, retval);
/* Otherwise produce new SSA name for return value. */
else
retval = make_ssa_name (retval, call);