On Sun, May 18, 2014 at 9:32 PM, Jan Hubicka <[email protected]> wrote:
> 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?
Please make sure to not enable it for -O0 and -Og at least.
Richard.
> 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