[PATCH] Don't create superfluous parm in expand_omp_taskreg

Tom de Vries Tom_deVries@mentor.com
Thu Sep 24 07:21:00 GMT 2015


On 24/09/15 08:23, Thomas Schwinge wrote:
> Hi Tom!
>
> On Tue, 11 Aug 2015 20:53:39 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote:
>> Don't create superfluous parm in expand_omp_taskreg
>>
>> 2015-08-11  Tom de Vries  <tom@codesourcery.com>
>>
>> 	* omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
>> 	parm_decl, rather than generating a dummy default def in cfun.
>> 	* tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
>> 	ssa_name from cfun and child_fn do not share a stmt as def stmt.
>> 	(move_stmt_op): Handle PARM_DECl.
>> 	(gather_ssa_name_hash_map_from): New function.
>> 	(move_sese_region_to_fn): Add default defs for function params, and add
>> 	them to vars_map.  Release copied ssa names.
>> 	* tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
>
> Do I understand correct that with this change present on trunk (which I'm
> currently merging into gomp-4_0-branch), the changes you've earlier done
> on gomp-4_0-branch to gcc/omp-low.c:release_dangling_ssa_names,
> gcc/tree-cfg.c:replace_ssa_name, should now be reverted?  That is, how
> much of the following patches can be reverted now (listed backwards in
> time)?
>

Hi Thomas,

indeed, in the above commit we release the dangling ssa names in 
move_sese_region_to_fn. So after committing this patch to the 
gomp-4_0-branch, the call to release_dangling_ssa_names is no longer 
necessary, and the function release_dangling_ssa_names can be removed.

Thanks,
- Tom

> commit 6befb84f4c0157a4cdf66cfaf64e457180f9a7fa
> Author: vries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
> Date:   Wed Aug 5 06:01:08 2015 +0000
>
>      Fix release_dangling_ssa_names
>
>      2015-08-05  Tom de Vries  <tom@codesourcery.com>
>
>          * omp-low.c (release_dangling_ssa_names): Release SSA_NAMEs with NULL
>          def stmt.
>          * tree-cfg.c (replace_ssa_name): Don't move default def nops.  Set def
>          stmt of unused SSA_NAME to NULL.
>
>      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@226608 138bc75d-0d04-0410-961f-82ee72b054a4
>
> commit 0cf67438bd87e5a6ec063e90da0ea20801bda54c
> Author: vries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
> Date:   Thu Jun 4 15:47:09 2015 +0000
>
>      Add release_dangling_ssa_names
>
>      2015-06-04  Tom de Vries  <tom@codesourcery.com>
>
>          * omp-low.c (release_dangling_ssa_names): Factor out of ...
>          (pass_expand_omp_ssa::execute): ... here.
>
>      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@224130 138bc75d-0d04-0410-961f-82ee72b054a4
>
> commit 93557ac5e30c26ee1a3d1255e31265b287171a0d
> Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
> Date:   Tue Apr 21 19:37:19 2015 +0000
>
>      Expand oacc kernels after pass_fre
>
>          gcc/
>          * omp-low.c: Include gimple-pretty-print.h.
>          (release_first_vuse_in_edge_dest): New function.
>          (expand_omp_target): When not in ssa, don't split off oacc kernels
>          region, clear PROP_gimple_eomp in cfun->curr_properties to force later
>          expanssion, and add GOACC_kernels_internal call.
>          When in ssa, split off oacc kernels and convert GOACC_kernels_internal
>          into GOACC_kernels call.  Handle ssa-code.
>          (pass_data_expand_omp): Don't set PROP_gimple_eomp unconditionally in
>          properties_provided field.
>          (pass_expand_omp::execute): Set PROP_gimple_eomp in
>          cfun->curr_properties tentatively.
>          (pass_data_expand_omp_ssa): Add TODO_remove_unused_locals to
>          todo_flags_finish field.
>          (pass_expand_omp_ssa::execute): Release dangling SSA_NAMEs after calling
>          execute_expand_omp.
>          (gimple_stmt_ssa_operand_references_var_p)
>          (gimple_stmt_omp_data_i_init_p): New function.
>          * omp-low.h (gimple_stmt_omp_data_i_init_p): Declare.
>          * passes.def: Add pass_expand_omp_ssa after pass_fre.  Add
>          pass_expand_omp_ssa after pass_all_early_optimizations.
>          * tree-ssa-ccp.c: Include omp-low.h.
>          (surely_varying_stmt_p, ccp_visit_stmt): Handle .omp_data_i init
>          conservatively.
>          * tree-ssa-forwprop.c: Include omp-low.h.
>          (pass_forwprop::execute): Handle .omp_data_i init conservatively.
>          * tree-ssa-sccvn.c: Include omp-low.h.
>          (visit_use): Handle .omp_data_i init conservatively.
>          * cgraph.c (cgraph_node::release_body): Don't release offloadable
>          functions.
>
>      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@222279 138bc75d-0d04-0410-961f-82ee72b054a4
>
>
> Grüße,
>   Thomas
>



More information about the Gcc-patches mailing list