diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-02 11:40:20 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-02 11:40:20 +0000 |
commit | c6dfe037e06639cfd2b8d10f540ca85aebe603cc (patch) | |
tree | 7d44a4c9f671c4b247e1567327eda00cf283e581 /gcc/ipa-split.c | |
parent | ff11bbd5a35a59f4bc4f9828079295bc3b45f87f (diff) | |
download | gcc-c6dfe037e06639cfd2b8d10f540ca85aebe603cc.tar.gz |
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: svn+ssh://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.c | 47 |
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); |