langhooks.h (struct lang_hooks): Add new field deep_unsharing.
* langhooks.h (struct lang_hooks): Add new field deep_unsharing. * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro. (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING. * gimplify.c: (mostly_copy_tree_r): Copy trees under SAVE_EXPR and TARGET_EXPR nodes, but only once, if instructed to do so. Do not propagate the 'data' argument to copy_tree_r. (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker. Propagate 'data' argument to walk_tree. (copy_if_shared): New function. (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker. (unmark_visited): New function. (unshare_body): Call copy_if_shared instead of doing it manually. (unvisit_body): Call unmark_visited instead of doing it manually. ada/ * gcc-interface/misc.c (LANG_HOOKS_DEEP_UNSHARING): Redefine. * gcc-interface/trans.c (unshare_save_expr): Delete. (gigi): Do not unshare trees under SAVE_EXPRs here. From-SVN: r159592
Showing
- gcc/ChangeLog 16 additions, 0 deletionsgcc/ChangeLog
- gcc/ada/ChangeLog 6 additions, 0 deletionsgcc/ada/ChangeLog
- gcc/ada/gcc-interface/misc.c 2 additions, 0 deletionsgcc/ada/gcc-interface/misc.c
- gcc/ada/gcc-interface/trans.c 0 additions, 25 deletionsgcc/ada/gcc-interface/trans.c
- gcc/gimplify.c 113 additions, 35 deletionsgcc/gimplify.c
- gcc/langhooks-def.h 2 additions, 0 deletionsgcc/langhooks-def.h
- gcc/langhooks.h 4 additions, 0 deletionsgcc/langhooks.h
- gcc/testsuite/ChangeLog 8 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gnat.dg/discr23.adb 18 additions, 0 deletionsgcc/testsuite/gnat.dg/discr23.adb
- gcc/testsuite/gnat.dg/discr23.ads 7 additions, 0 deletionsgcc/testsuite/gnat.dg/discr23.ads
- gcc/testsuite/gnat.dg/discr23_pkg.ads 12 additions, 0 deletionsgcc/testsuite/gnat.dg/discr23_pkg.ads
- gcc/testsuite/gnat.dg/specs/controlled1.ads 35 additions, 0 deletionsgcc/testsuite/gnat.dg/specs/controlled1.ads
- gcc/testsuite/gnat.dg/specs/controlled1_pkg.ads 7 additions, 0 deletionsgcc/testsuite/gnat.dg/specs/controlled1_pkg.ads
Loading
Please register or sign in to comment