On Fri, 4 Apr 2014 08:18:26 +0200
Jan Hubicka <hubi...@ucw.cz> wrote:

> Hi,
> here is an updated version of my earlier ipa.c change.  It turns out that the
> problem was that I did not drop always_inline.
> In this version I just drop always_inline attribute on all functions whose
> body is removed.  The patch will affect non-LTO compilation, too, but IMO
> only by making us to not inline&diagnose the cases where indirect call to
> always inline is turned direct in between early opts and inline. Does that
> seem acceptable? (I personally would preffer this over inventing yet another
> way to special case always_inline for LTO only; we never made any strong
> promises on always_inline and indirect calls)
> 
> Honza
> 
>       * lto-cgraph.c (input_overwrite_node): Check that partitioning
>       flags are set only during streaming.
>       * ipa.c (process_references, walk_polymorphic_call_targets,
>       symtab_remove_unreachable_nodes): Drop bodies of always inline
>       after early inlining.
>       (symtab_remove_unreachable_nodes): Remove always_inline attribute.
> 
>       * gcc.dg/lto/pr59626_0.c: New testcase.
>       * gcc.dg/lto/pr59626_1.c: New testcase.

Would it be possible to backport this to 4.8?  It fixes a number of issues
we're seeing, including a couple unrelated to LTO (eg. PR50506).


-- 
Ryan Hill                        psn: dirtyepic_sk
   gcc-porting/toolchain/wxwidgets @ gentoo.org

47C3 6D62 4864 0E49 8E9E  7F92 ED38 BD49 957A 8463

Attachment: signature.asc
Description: PGP signature

Reply via email to