From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 100188 invoked by alias); 16 Jun 2017 10:10:45 -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 100176 invoked by uid 89); 16 Jun 2017 10:10:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-ot0-f177.google.com Received: from mail-ot0-f177.google.com (HELO mail-ot0-f177.google.com) (74.125.82.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 16 Jun 2017 10:10:43 +0000 Received: by mail-ot0-f177.google.com with SMTP id u13so12742383otd.2 for ; Fri, 16 Jun 2017 03:10:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=uThkuaXr7x5h8gDpKkUbPJ4BDwBs2eyKCfD962bNT48=; b=QSgvEthvWWcsV/bd5D1L4rR1Pc4c3Qi/QAtJB5PrlimxBzOuzZ7wA/YqHgfTnUhvtb V2Y7xB1Jat2RWIDHl/8+8Fo9yeuw2z+O7Pz+cx5bstuazxaVFhVi4AGYdNoa+btyuqnn jZq84A4c7ZC5zgFDdVDOxChFacHXmCYsdys5AnCbrpB4rSC77hhOcGK8C06Fg/QkqDBQ M2DYmtMFptfx5ECYHHk53Lhglus7FvSqMeziqTFq2h4XHa9uF3Np89dvmkPMukcXqGIe NeDUYHKEOxUZU2MOAguTyYoRb4cnIFqk5apX5ySB42qAvDsOAswAYTCC20e3azONQGL1 lHMw== X-Gm-Message-State: AKS2vOyj3G4/FVU3B1PTjrx/Nb+5b8GSGs/MVGWuKt6B25XnXnnSZyTC 0cD6xZUUnkL/3OYZTJGBqv8NQQ+C8A== X-Received: by 10.157.17.25 with SMTP id g25mr6585715ote.105.1497607846899; Fri, 16 Jun 2017 03:10:46 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.37.66 with HTTP; Fri, 16 Jun 2017 03:10:46 -0700 (PDT) In-Reply-To: References: From: Richard Biener Date: Fri, 16 Jun 2017 10:10:00 -0000 Message-ID: Subject: Re: [PATCH GCC][11/13]Annotate partition by its parallelism execution type To: Bin Cheng Cc: "gcc-patches@gcc.gnu.org" , nd Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg01178.txt.bz2 On Mon, Jun 12, 2017 at 7:03 PM, Bin Cheng wrote: > Hi, > This patch checks and records if partition can be executed in parallel by > looking if there exists data dependence cycles. The information is needed > for distribution because the idea is to distribute parallel type partitions > away from sequential ones. I believe current distribution doesn't work > very well because it does blind distribution/fusion. > Bootstrap and test on x86_64 and AArch64. Is it OK? + /* In case of no data dependence. */ + if (DDR_ARE_DEPENDENT (ddr) == chrec_known) + return false; + /* Or the data dependence can be resolved by compilation time alias + check. */ + else if (!alias_sets_conflict_p (get_alias_set (DR_REF (dr1)), + get_alias_set (DR_REF (dr2)))) + return false; dependence analysis should use TBAA already, in which cases do you need this? It seems to fall foul of the easy mistake of not honoring GCCs memory model as well ... see dr_may_alias_p. + /* Further check if any data dependence prevents us from executing the + partition parallelly. */ + EXECUTE_IF_SET_IN_BITMAP (partition->reads, 0, i, bi) + { + dr1 = (*datarefs_vec)[i]; + EXECUTE_IF_SET_IN_BITMAP (partition->writes, 0, j, bj) + { what about write-write dependences? + EXECUTE_IF_SET_IN_BITMAP (partition->reads, 0, i, bi) + { + dr1 = (*datarefs_vec)[i]; + EXECUTE_IF_SET_IN_BITMAP (partition->writes, i + 1, j, bj) + { + dr2 = (*datarefs_vec)[j]; + /* Partition can only be executed sequentially if there is any + data dependence cycle. */ exact copy of the loop nest follows?! Maybe you meant to iterate over writes in the first loop. Richard. > Thanks, > bin > 2017-06-07 Bin Cheng > > * tree-loop-distribution.c (alias.h): Include header file. > (enum partition_type): New. > (struct partition): New field type. > (partition_merge_into): Update partition type. > (data_dep_in_cycle_p): New function. > (build_rdg_partition_for_vertex): Compute partition type. > (rdg_build_partitions): Dump partition type.