From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 0CF023858012 for ; Wed, 31 Mar 2021 12:03:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0CF023858012 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mjambor@suse.cz X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id E1B4EB1E5; Wed, 31 Mar 2021 12:03:45 +0000 (UTC) From: Martin Jambor To: Dmitry Torilov Cc: GCC Mailing List , Jan Hubicka Subject: Re: GSoC 2021 (incremental LTO) In-Reply-To: <20210329145816.vg2a34n6jcovi63b@edu.hse.ru> References: <20210329145816.vg2a34n6jcovi63b@edu.hse.ru> User-Agent: Notmuch/0.31.4 (https://notmuchmail.org) Emacs/27.1 (x86_64-suse-linux-gnu) Date: Wed, 31 Mar 2021 14:03:45 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-3033.2 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Mar 2021 12:03:49 -0000 Hi Dmitry, we are delighted you found contributing to GCC interesting. On Mon, Mar 29 2021, Dmitry Torilov via Gcc wrote: > Greetings, > > I saw a task on your site for GSoC called < Optimization (LTO) linking>>. I am very interested in it, and I would > like to know if it is possible to do it this summer. I have experience > in C/C++ development as well as experience in related fields. I know how > to compile GCC, and I have a top-level understanding of how LTO works. > Unfortunately, I've never written compilers yet, but I've had experience > in developing a LISP interpreter, and I've also watched a lot of > conference talks about compilers. I am sending a link to my CV. I hope > that you will be interested in it. Can I ask you to tell me about the > further screening process for GSoC? there is no formal screening process and GCC does not impose any additional formal requirements on top of those of the GSoC program, except that we want students to announce their intention to apply so that we can help them write a good proposal and in the process learn about the project they apply for. I have CCed Honza who would be the primary mentor for this project. >From what I know about the project, I can suggest (apart from the suggestions at https://gcc.gnu.org/wiki/SummerOfCode) the following. Compile some small but non-trivial program with options -flto -save-temps and -v (in addition to one you would normally use). The *ltrans* files the compiler will produce are the partitions, which are currently all always compiled, even when a partition from an earlier build would do. The project should probably start with the driver (gcc/gcc.c) or perhaps lto-wrapper (gcc/lto-wrapper.c) stashing the *ltrans[0-9]*.o caching the files somewhere and then using the information about what is cached to prevent unnecessary compilation of a partition which is identical to one that has been compiled at some point in the past. So at this point I would suggest to study how exactly the driver, the lto-plugin (lto-plugin/lto-plugin.c), lto-wrapper and lto1 (gcc/lto/*.c) interact and where it would make sense to cache the partitions and retrieve them from the cache. Please do not hesitate to ask here on the mailing list if you struggle with reading the code, if you want to find out if your understanding is correct or need any help with any specific aspect of the project proposal. Good luck, Martin