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
signature.asc
Description: PGP signature