From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30522 invoked by alias); 1 Apr 2019 05:25:10 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 30119 invoked by uid 89); 1 Apr 2019 05:24:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-0.6 required=5.0 tests=AWL,BAYES_50,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-HELO:sk:mail-ed, HX-Spam-Relays-External:sk:mail-ed, H*RU:sk:mail-ed, H*r:sk:mail-ed X-HELO: mail-ed1-f41.google.com Received: from mail-ed1-f41.google.com (HELO mail-ed1-f41.google.com) (209.85.208.41) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 01 Apr 2019 05:24:37 +0000 Received: by mail-ed1-f41.google.com with SMTP id q3so7028025edg.0 for ; Sun, 31 Mar 2019 22:24:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gwmail-gwu-edu.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=pXYBrtp4cZSEwPOzLJmtpBpDtvEzFLWmmL8jFS4NU3c=; b=PdLy03eynbI971bL+ksQzqVlmIxMVTCGlWjg/Tj4Cmf8+Nsu0MMLlnqWsdxoUkeODJ /mucrGLFOqxy+Bh0cFeK9WKw+rEJHISwkhCj1kxQHgY+BXMNGc2EUmKF2GLy2eGF3urr 4NVseLJ5RVnkERoSA67OCwJazMFSa+oZ8T/f6djGtizKQFIVUUtRWbs4FnPmm1DTN51p d5T7BnARc2zV4kYTjK5XzymEkgvRsTmnqk9Hkgpc3vPtEyaAwtcbazGv61mBAQ/5b4fD M6guVY5hm3/si2Wv1KPHFbiOQdvwf1f95jhI/fL8iJa0NXSy0s7sFM02mQFGOCg2qRNK xULg== MIME-Version: 1.0 Received: by 2002:a17:906:3602:0:0:0:0 with HTTP; Sun, 31 Mar 2019 22:24:18 -0700 (PDT) In-Reply-To: <70316c90-b241-3f88-56d8-9e59f3eac0ee@gmail.com> References: <4327491a-395b-bee0-145a-eddd8f64b0ba@gmail.com> <63e78666-ceca-94d8-9ac4-101130afab4c@gmail.com> <70316c90-b241-3f88-56d8-9e59f3eac0ee@gmail.com> From: Eric Gallager Date: Mon, 01 Apr 2019 05:25:00 -0000 Message-ID: Subject: Re: GSOC Proposal To: nick Cc: Richard Biener , GCC Development , Nathan Sidwell Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2019-04/txt/msg00001.txt.bz2 On 3/29/19, nick wrote: > > > On 2019-03-29 10:28 a.m., nick wrote: >> >> >> On 2019-03-29 5:08 a.m., Richard Biener wrote: >>> On Thu, 28 Mar 2019, nick wrote: >>> >>>> >>>> >>>> On 2019-03-28 4:59 a.m., Richard Biener wrote: >>>>> On Wed, Mar 27, 2019 at 6:31 PM nick wrote: >>>>>> >>>>>> Greetings All, >>>>>> >>>>>> I've already done most of the work required for signing up for GSoC >>>>>> as of last year i.e. reading getting started, being signed up legally >>>>>> for contributions. >>>>>> >>>>>> My only real concern would be the proposal which I started writing >>>>>> here: >>>>>> https://docs.google.com/document/d/1BKVeh62IpigsQYf_fJqkdu_js0EeGdKtXInkWZ-DtU0/edit?usp=sharing >>>>>> >>>>>> The biography and success section I'm fine with my bigger concern >>>>>> would be the project and roadmap >>>>>> section. The roadmap is there and I will go into more detail about it >>>>>> in the projects section as >>>>>> need be. Just wanted to known if the roadmap is detailed enough or can >>>>>> I just write out a few >>>>>> paragraphs discussing it in the Projects Section. >>>>> >>>>> I'm not sure I understand either the problem analysis nor the project >>>>> goal parts. What >>>>> shared state with respect to garbage collection are you talking about? >>>>> >>>>> Richard. >>>>> >>>> I just fixed it. Seems we were discussing RTL itself. I edited it to >>>> reflect those changes. Let me know if it's unclear or you would actually >>>> >>>> like me to discuss some changes that may occur in the RTL layer itself. >>>> >>>> >>>> I'm glad to be more exact if that's better but seems your confusion was >>>> >>>> just what layer we were touching. >>> >>> Let me just throw in some knowledge here. The issue with RTL >>> is that we currently can only have a single function in this >>> intermediate language state since a function in RTL has some >>> state in global variables that would differ if it were another >>> function. We can have multiple functions in GIMPLE intermediate >>> language state since all such state is in a function-specific >>> data structure (struct function). The hard thing about moving >>> all this "global" state of RTL into the same place is that >>> there's global state in the various backends (and there's >>> already a struct funtion 'machine' part for such state, so there's >>> hope the issue isn't as big as it could be) and that some of >>> the global state is big and only changes very rarely. >>> That said, I'm not sure if anybody knows the full details here. >>> >>> So as far as I understand you'd like to tackle this as project >>> with the goal to be able to have multiple functions in RTL >>> state. >>> >>> That's laudable but IMHO also quite ambitious for a GSoC >>> project. It's also an area I am not very familiar with so >>> I opt out of being a mentor for this project. >>> >> While I'm aware of three areas where the shared state is an issue >> currently: >> 1, Compiler's Proper >> 2. The expand_functions >> 3. RTL >> 4.Garbage Collector >> >> Or maybe a project to be more >> explicit about regions of the code that assume that the garbage- >> collector can't run within them?[3] (since the GC is state that would >> be shared by the threads). >> >> This is what we were discussing previously and I wrote my proposal for >> that. You however seem confused about what parts of the garbage collector >> would be touched. That's fine with me, however seems you want be to >> be more exact about which part is touched. >> >> My questions would be as it's changed back to the garbage collector >> project: >> https://docs.google.com/document/d/1BKVeh62IpigsQYf_fJqkdu_js0EeGdKtXInkWZ-DtU0/edit >> >> 1. Your confusion about which part of the garbage collector is touched >> doesn't >> really make sense s it's for the whole garbage collector as related to >> shared >> state? >> 2. Injection was my code here in phase 3 for the callers of the new >> functions or >> macros, perhaps this is not needed as the work with the garbage collector >> is enough? >> 3. Am I not understanding this project as I thought I was in the proposal >> I wrote? >> >> Seems your more confusing my wording probably so I'm going to suggest one >> of >> two things here: >> a) I'm going to allow you to make comments with what's confusing you and >> it needs that's the issue here more than anything else so I sent you >> a link and please comment where you are having issues with this not >> be clear for you: >> Or maybe a project to be more >> explicit about regions of the code that assume that the garbage- >> collector can't run within them?[3] (since the GC is state that would >> be shared by the threads). >> as that's the actual project >> >> b) Just comment here about the wording that's an issue for you or >> where you want more exact wording >> >> Sorry and hopefully this is helps you understand where I'm going, >> Nick >> >>> Richard. >>> >>>> Nick >>>>>> Any other comments are welcome as well as I write it there, >>>>>> Nick >>>> > > Richard, > > Seems your right touching the complete garbage collector is too much. I'm > just looking at the users of the garbage collector and it seems one of the > major ones is pre compiled headers. > The thing about pre-compiled headers is that I seem to remember some GCC devs saying they wanted to rip out pre-compiled headers completely once the C++ modules branch is merged, so I'm not sure if it's worth putting that much work into something that might be removed soon, anyways... I'm pretty sure Nathan Sidwell is the main person working on the C++ modules branch, so I'm cc-ing him. > I've narrowed it down to that. My own real final concern is two things: > 1. Does it make sense to you in my writing? > 2. Should callers inject the information for state sharing as required > as that seems better or is it better for the garbage collector to store > the state sharing flags,marcos and functions internally for this. > > Thanks and seems I was over thinking the last proposal it's too much:), > Nick >>> >