From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 124991 invoked by alias); 7 May 2018 14:13:14 -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 124981 invoked by uid 89); 7 May 2018 14:13:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-yw0-f193.google.com Received: from mail-yw0-f193.google.com (HELO mail-yw0-f193.google.com) (209.85.161.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 07 May 2018 14:13:12 +0000 Received: by mail-yw0-f193.google.com with SMTP id u83-v6so8637463ywc.4 for ; Mon, 07 May 2018 07:13:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=J3ET7j/ccJ4hB6u1Tz1fcsUHZ+IBvbNKnttRZaBVdCc=; b=C9JJgBZBxJbx0czo6qPhZNSK3kohs9BAliHbwowOwJCicbrCsNCuDY3iGtQS4Lwlvi vx9moOmOTY3PRPfOB+1WfIJ4BW8rxV1kczEFvwDjSIV99rlL0wvsmF3DE6NAT0mp7UIJ 2pqE6XioUIovLsboU5xfFsfX75I2grHRIn84qYrX2Ok4AtxIeUbvfKv0bCHq+iFaMBCz vMAbxn1azuN4qFvM5gHr1Io7eTz7ZvS8mErz6yUlX+9ccjy/bdxVns1eeidxSOGOoyft kPDNrxo2eV0n5Gp5nBfgyBbH+WlRM+ayu6C8W1Z3EtUAAP8EBxJI3mgxECPDWuGBF99q D0Fg== X-Gm-Message-State: ALQs6tAO8ubl9GhPeXfLavKpiarV3YAjZKf3hW44zX8ySGHCEMyoZgm1 Y61JFEIMtwpVNNg1hPwsGM30fPTSLIo= X-Google-Smtp-Source: AB8JxZq8DAvz3yZO89P5CPwL5NxGtsThvmKBx/erYKAhxARqJVu37K3D/FY1LxGSEb2TlfYzPBHzRA== X-Received: by 2002:a0d:e288:: with SMTP id l130-v6mr20931986ywe.236.1525702390420; Mon, 07 May 2018 07:13:10 -0700 (PDT) Received: from [192.168.6.17] ([24.213.126.67]) by smtp.gmail.com with ESMTPSA id k8-v6sm4521399ywa.32.2018.05.07.07.13.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 May 2018 07:13:09 -0700 (PDT) Subject: Re: [PATCH 2/2] Introduce prefetch-dynamic-strides option. To: Jeff Law , gcc-patches@gcc.gnu.org Cc: james.greenhalgh@arm.com, Richard.Earnshaw@arm.com References: <1516628770-25036-1-git-send-email-luis.machado@linaro.org> <1516628770-25036-3-git-send-email-luis.machado@linaro.org> From: Luis Machado Message-ID: <2d8e601f-c096-20e5-191e-3a8d430446fd@linaro.org> Date: Mon, 07 May 2018 14:13:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00282.txt.bz2 On 05/01/2018 03:30 PM, Jeff Law wrote: > On 01/22/2018 06:46 AM, Luis Machado wrote: >> The following patch adds an option to control software prefetching of memory >> references with non-constant/unknown strides. >> >> Currently we prefetch these references if the pass thinks there is benefit to >> doing so. But, since this is all based on heuristics, it's not always the case >> that we end up with better performance. >> >> For Falkor there is also the problem of conflicts with the hardware prefetcher, >> so we need to be more conservative in terms of what we issue software prefetch >> hints for. >> >> This also aligns GCC with what LLVM does for Falkor. >> >> Similarly to the previous patch, the defaults guarantee no change in behavior >> for other targets and architectures. >> >> I've regression-tested and bootstrapped it on aarch64-linux. No problems found. >> >> Ok? >> >> 2018-01-22 Luis Machado >> >> Introduce option to control whether the software prefetch pass should >> issue prefetch hints for non-constant strides. >> >> gcc/ >> * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) >> : New const unsigned int field. >> * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include >> prefetch_dynamic_strides. >> (exynosm1_prefetch_tune): Likewise. >> (thunderxt88_prefetch_tune): Likewise. >> (thunderx_prefetch_tune): Likewise. >> (thunderx2t99_prefetch_tune): Likewise. >> (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to 0. >> (aarch64_override_options_internal): Update to set >> PARAM_PREFETCH_DYNAMIC_STRIDES. >> * doc/invoke.texi (prefetch-dynamic-strides): Document new option. >> * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. >> * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. >> * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for >> prefetch-dynamic-strides setting. > OK for the trunk. > jeff > Thanks. Committed as r259996.