This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[C++ patch] Enable constructor decloning by default
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: gcc-patches at gcc dot gnu dot org, jason at redhat dot com
- Date: Sun, 18 May 2014 21:32:31 +0200
- Subject: [C++ patch] Enable constructor decloning by default
- Authentication-results: sourceware.org; auth=none
Hi,
this patch enables -fdeclone-ctor-dtor by default: I believe it is up to the
optimizers to decide when the actual worker body should be inlined into the
thunks.
Bootstrapped/regtested x86_64-linux, OK?
Honza
* c-family/c.opt: Enable declonning by default.
* c-family/c-opts.c: Do not enable decloning for -Os.
* doc/invoke.texi (-fdeclone-ctor-dtor): Update documentation.
Index: c-family/c.opt
===================================================================
--- c-family/c.opt (revision 210521)
+++ c-family/c.opt (working copy)
@@ -904,7 +904,7 @@ C++ ObjC++ Var(flag_deduce_init_list) In
-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
fdeclone-ctor-dtor
-C++ ObjC++ Var(flag_declone_ctor_dtor) Init(-1)
+C++ ObjC++ Var(flag_declone_ctor_dtor) Init(1)
Factor complex constructors and destructors to favor space over speed
fdefault-inline
Index: c-family/c-opts.c
===================================================================
--- c-family/c-opts.c (revision 210521)
+++ c-family/c-opts.c (working copy)
@@ -906,10 +906,6 @@ c_common_post_options (const char **pfil
if (warn_implicit_function_declaration == -1)
warn_implicit_function_declaration = flag_isoc99;
- /* Declone C++ 'structors if -Os. */
- if (flag_declone_ctor_dtor == -1)
- flag_declone_ctor_dtor = optimize_size;
-
if (cxx_dialect >= cxx11)
{
/* If we're allowing C++0x constructs, don't warn about C++98
Index: doc/invoke.texi
===================================================================
--- doc/invoke.texi (revision 210521)
+++ doc/invoke.texi (working copy)
@@ -7413,7 +7414,7 @@ clones, which means two copies of the fu
base and complete variants are changed to be thunks that call a common
implementation.
-Enabled by @option{-Os}.
+Enabled by default.
@item -fdelete-null-pointer-checks
@opindex fdelete-null-pointer-checks