From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 57256 invoked by alias); 26 Nov 2015 00:38:33 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 57245 invoked by uid 89); 26 Nov 2015 00:38:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: nikam.ms.mff.cuni.cz Received: from nikam.ms.mff.cuni.cz (HELO nikam.ms.mff.cuni.cz) (195.113.20.16) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Thu, 26 Nov 2015 00:38:31 +0000 Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id 705AC5452CA; Thu, 26 Nov 2015 01:38:28 +0100 (CET) Date: Thu, 26 Nov 2015 00:54:00 -0000 From: Jan Hubicka To: Andi Kleen Cc: Jan Hubicka , gcc-patches@gcc.gnu.org, rguenther@suse.de, hongjiu.lu@intel.com, ccoutant@google.com, iant@google.com Subject: Re: [RFC] Getting LTO incremental linking work Message-ID: <20151126003828.GH20593@kam.mff.cuni.cz> References: <20151125085912.GD58491@kam.mff.cuni.cz> <20151125235858.GI8438@tassilo.jf.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151125235858.GI8438@tassilo.jf.intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SW-Source: 2015-11/txt/msg03168.txt.bz2 > > Moreover we do have all infrastructure ready to implement 3). Our tree merging > > and symbol table handling is fuly incremental and I think made a patch to > > implement it today. The scheme is easy: > > What happens when .S (assembler) files are part of the incremential object? > The kernel does that. Your patch would do the final generation in this case, > right? Yes, it will spit out warning (which can be silenced -Wl,-rnolto is used) and turn the whole object into non-LTO one. > > In theory we could change the build system to avoid that case though, but > it would need some changes. > > It would be better if that could be handled somehow. How does this work with your patchset? Ideally we should have way to claim only portions of object files, but we don't have that. If we claim the file, the symbols in real symbol table are not visible. I suppose we could play a games here with slim LTO: claim the file, see if there are any symbols defined in the non-LTO symbol table and if so, interpret read the symbol table and tell linker about the symbols and at the very end include the offending object file in the list of objects returned back to linker. The linker then should take the symbols it wants. There would be some fun involved, because the resolution info we get will consider the symbols defined in that object file to be IR which would need to be compensated for. Honza