From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 51247 invoked by alias); 19 Mar 2018 20:55:27 -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 51237 invoked by uid 89); 19 Mar 2018 20:55:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=H*f:sk:2C17E15, obstacles X-HELO: mail-wm0-f46.google.com Received: from mail-wm0-f46.google.com (HELO mail-wm0-f46.google.com) (74.125.82.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 19 Mar 2018 20:55:25 +0000 Received: by mail-wm0-f46.google.com with SMTP id x82so5459761wmg.1 for ; Mon, 19 Mar 2018 13:55:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:user-agent:in-reply-to:references :mime-version:content-transfer-encoding:subject:to:cc:from :message-id; bh=q0lPxBaxpwnYXhrGa8MC72QVVYg1atQjwfx2pdciGaM=; b=XtZfq40tSuR5htJUHPmsrRqjjt6w6z0j5QiVjgWhyqMy4/sU+vu3rY66KqZYNoAm6q zqSEiLICza51QR7a+h9ab4COhYNlXaEha5lgYaJ8c1K0uvyrQY5cOAgYhK2cM3onqjeY G5umDOrmllQFEwtFmdLoMfdDnE7ccnAAxk6fWVV7Hdbe3pmVDjHBQU20xMnqfFFnVOwr T3EtkzPjOZhavvvOYLoKsKTnNSGa9b3du/9IwbJWBlId6spanqLnrlQzOzLAG5MBlFWc Bpb6iK2sZLPEbTg6/wAInvzeF8sCunBow/du04LyYBDe7moNDnavNztDUrUe7Cg6onDS bZOg== X-Gm-Message-State: AElRT7Gjgzzi7J7amkMdDqaq9SAIMcvjpskA8aIsSfLKvxWHgyUEYaOi sxYJoWxuWcdP0j4b95oqZWY= X-Google-Smtp-Source: AG47ELsh0oXNkD14Tl+pSIlskyef4mwFEpioaa//VIRN03AULXQgQ/jlS3v5wXbH6+bLrbIdWHF7PQ== X-Received: by 10.28.148.202 with SMTP id w193mr119086wmd.62.1521492923135; Mon, 19 Mar 2018 13:55:23 -0700 (PDT) Received: from [192.168.178.32] (p2E530C99.dip0.t-ipconnect.de. [46.83.12.153]) by smtp.gmail.com with ESMTPSA id o88sm102961wrb.44.2018.03.19.13.55.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Mar 2018 13:55:22 -0700 (PDT) Date: Mon, 19 Mar 2018 20:55:00 -0000 User-Agent: K-9 Mail for Android In-Reply-To: References: , ,<2C17E153-DCDC-4E24-B9D3-64E0FF358758@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: GSOC Question about the parallelization project To: Sebastiaan Peters ,Sebastiaan Peters CC: "gcc@gcc.gnu.org" From: Richard Biener Message-ID: X-IsSubscribed: yes X-SW-Source: 2018-03/txt/msg00194.txt.bz2 On March 19, 2018 8:09:32 PM GMT+01:00, Sebastiaan Peters wrote: >>The goal should be to extend TU wise parallelism via make to function >wise parallelism within GCC. > >Could you please elaborate more on this? In the abstract sense you'd view the compilation process separated into N s= tages, each function being processed by each. You'd assign a thread to each= stage and move the work items (the functions) across the set of threads ho= noring constraints such as an IPA stage needing all functions completed the= previous stage. That allows you to easier model the constraints due to sha= red state (like no pass operating on two functions at the same time) compar= ed to a model where you assign a thread to each function.=20 You'll figure that the easiest point in the pipeline to try this 'pipelinin= g' is after IPA has completed and until RTL is generated.=20 Ideally the pipelining would start as early as the front ends finished pars= ing a function and ideally we'd have multiple functions in the RTL pipeline. The main obstacles will be the global state in the compiler of which there = is the least during the GIMPLE passes (mostly cfun and current_function_dec= l plus globals in the individual passes which is easiest dealt with by not = allowing a single pass to run at the same time in multiple threads). TLS ca= n be used for some of the global state plus of course some global data stru= ctures need locking.=20 Richard.=20 >________________________________ >From: Richard Biener >Sent: Monday, March 19, 2018 18:37 >To: Sebastiaan Peters >Cc: gcc@gcc.gnu.org >Subject: Re: GSOC Question about the parallelization project > >On March 19, 2018 4:27:58 PM GMT+01:00, Sebastiaan Peters > wrote: >>Thank you for your quick response. >> >>Does the GIMPLE optimization pipeline include only the Tree SSA passes >>or also the RTL passes? > >Yes, it only includes only Tree SSA passes. The RTL part of the >pipeline hasn't been audited to work with multiple functions in RTL >Form in the same time. > >The only parallelized part of the compiler is LTO byte code write-out >at WPA stage which is done in a "fork-and-forget" mode. > >The goal should be to extend TU wise parallelism via make to function >wise parallelism within GCC. > >Richard. > >>Are the currently other parts of the compiler that have been >>parallelized? >> >>Kind regards, >> >>Sebastiaan Peters