gcc/libstdc++-v3
Martin Liska 6343b6bf3b Extend DCE to remove unnecessary new/delete-pairs (PR c++/23383).
2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* common.opt: Add -fallocation-dce
	* gimple.c (gimple_call_operator_delete_p): New.
	* gimple.h (gimple_call_operator_delete_p): Likewise.
	* tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
	DECL_IS_OPERATOR_DELETE_P.
	(mark_all_reaching_defs_necessary_1): Likewise.
	(propagate_necessity): Likewise.
	(eliminate_unnecessary_stmts): Handle
	gimple_call_operator_delete_p.
	* tree-streamer-in.c (unpack_ts_function_decl_value_fields):
	Add packing of OPERATOR_DELETE.
	* tree-streamer-out.c (pack_ts_function_decl_value_fields):
	Similarly here.
	* tree.h (DECL_IS_OPERATOR_DELETE_P): New.
	(DECL_SET_IS_OPERATOR_DELETE): New.
	(DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* c-decl.c (merge_decls): Merge OPERATOR_DELETE flag.
2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* decl.c (cxx_init_decl_processing): Mark delete operators
	with DECL_SET_IS_OPERATOR_DELETE.
2019-07-25  Martin Liska  <mliska@suse.cz
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* g++.dg/cpp1y/new1.C: New test.
2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* testsuite/ext/bitmap_allocator/check_delete.cc: Add
	-fno-allocation-dce.
	* testsuite/ext/bitmap_allocator/check_new.cc: Likewise.
	* testsuite/ext/new_allocator/check_delete.cc: Likewise.
	* testsuite/ext/new_allocator/check_new.cc: Likewise.

Co-Authored-By: Dominik Infuehr <dominik.infuehr@theobroma-systems.com>

From-SVN: r273791
2019-07-25 09:36:38 +00:00
..
config * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. 2019-07-19 09:57:08 +00:00
doc Update C++2a library status table 2019-07-12 12:43:17 +01:00
include Adjust std::rotl, std::rotr etc to match final P0553R4 proposal 2019-07-22 17:53:36 +01:00
libsupc++ PR libstdc++/90682 allow set_terminate(0) and set_unexpected(0) 2019-05-31 11:35:11 +01:00
po PR libstdc++/89466 avoid slow xsltproc command in configure 2019-02-27 11:25:44 +00:00
python Have std::vector printer's iterator return bool for vector<bool> 2019-06-19 23:57:06 +01:00
scripts Remove Profile Mode, deprecated since GCC 7.1 2019-05-13 11:50:21 +01:00
src PR libstdc++/91012 fixfilesystem_error::what() string 2019-06-27 10:42:39 +01:00
testsuite Extend DCE to remove unnecessary new/delete-pairs (PR c++/23383). 2019-07-25 09:36:38 +00:00
acinclude.m4 PR libstdc++/91067 fix missing exports for filesystem iterators 2019-07-03 22:06:25 +01:00
aclocal.m4
ChangeLog Extend DCE to remove unnecessary new/delete-pairs (PR c++/23383). 2019-07-25 09:36:38 +00:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
config.h.in PR libstdc++/85494 use rdseed and rand_s in std::random_device 2019-05-29 15:45:35 +01:00
configure PR libstdc++/91067 fix missing exports for filesystem iterators 2019-07-03 22:06:25 +01:00
configure.ac Fix libstdc++ install-pdf support. 2019-07-01 19:30:52 -07:00
configure.host Remove obsolete Solaris 10 support 2019-05-14 17:17:23 +00:00
crossconfig.m4 PR libstdc++/89460 Fix Networking TS test failures on HP-UX 2019-03-11 16:28:11 +00:00
fragment.am
linkage.m4
Makefile.am
Makefile.in PR libstdc++/89466 avoid slow xsltproc command in configure 2019-02-27 11:25:44 +00:00
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.