From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 49100 invoked by alias); 2 Jul 2019 19:21:49 -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 49084 invoked by uid 89); 2 Jul 2019 19:21:49 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=PING, max_size, HX-Spam-Relays-External:209.85.167.194, H*RU:209.85.167.194 X-HELO: mail-oi1-f194.google.com Received: from mail-oi1-f194.google.com (HELO mail-oi1-f194.google.com) (209.85.167.194) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 02 Jul 2019 19:21:47 +0000 Received: by mail-oi1-f194.google.com with SMTP id m206so14039940oib.12 for ; Tue, 02 Jul 2019 12:21:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=K357NLc2v2f4ThzswkhhMuMT3byw4KyfSZsGsvCd5kM=; b=rKRqFxCXac2CJbWaczCDPmfTWxntAh6gHSaSREaIrXmAI7waXFs0oDsHbIZyBJnvvS WWefLR7vpO66YT9IuM2NFh0Vi8L93MZtRq8Ob4OQxicW2VPgFksI+qmBDjOTuMIytgOt 7uWvXose1dojeeOs/VPOBBR2zB6m8W62hFgd2iSD881eQM98kKHAJPSKfw8WzPnmxgxt mmLmYgD6KzzfjcXGdeq6txx5fzLZG2xy1C3Zp4R12cgeR0ZKt89xgAyBpM2QdMmB8Wui Bq5IeepKcHio3fv+IM0lA4dIaygniplRQ3RuwgH5R5YHAmIb7yMBMnpAX8A2zvwIYuw+ xGeA== MIME-Version: 1.0 References: In-Reply-To: From: "H.J. Lu" Date: Tue, 02 Jul 2019 19:21:00 -0000 Message-ID: Subject: PING^2 [PATCH] Minimize number of operations between two areas of memory To: GCC Patches , Jakub Jelinek , Jeffrey Law , Richard Biener Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2019-07/txt/msg00176.txt.bz2 On Tue, Jun 18, 2019 at 8:58 AM H.J. Lu wrote: > > On Tue, Jun 11, 2019 at 8:14 AM H.J. Lu wrote: > > > > For op_by_pieces operations between two areas of memory, this patch adds > > -fminimize-op-by-pieces-run to minimize number of operations. When > > operating on LENGTH bytes of memory, it starts with the widest usable > > integer size, MAX_SIZE, for LENGTH bytes and finishes with the smallest > > usable integer size, MIN_SIZE, for the remaining bytes where MAX_SIZE > > >= MIN_SIZE. If MIN_SIZE > the remaining bytes, the last operation is > > performed on MIN_SIZE bytes of overlapping memory from the previous > > operation. > > > > Tested on Linux/x86-64 with both -fminimize-op-by-pieces-run enabled > > and disabled by default. > > > > I will submit a separate patch to enable -fminimize-op-by-pieces-run for -Os. > > > > OK for trunk? > > > > gcc/ > > > > PR middl-end/90773 > > * common.opt (-fminimize-op-by-pieces-run): New. > > * expr.c (op_by_pieces_d): Add get_usable_mode. > > (op_by_pieces_d::get_usable_mode): New. > > (op_by_pieces_d::run): Use get_usable_mode to get the largest > > usable integer mode for -fminimize-op-by-pieces-run. > > * doc/invoke.texi: Document -fminimize-op-by-pieces-run. > > > > gcc/testsuite/ > > > > PR middl-end/90773 > > * gcc.target/i386/pr90773-1.c: New test. > > * gcc.target/i386/pr90773-2.c: Likewise. > > * gcc.target/i386/pr90773-3.c: Likewise. > > * gcc.target/i386/pr90773-4.c: Likewise. > > * gcc.target/i386/pr90773-5.c: Likewise. > > > > Thanks. > > > > PING: > > https://gcc.gnu.org/ml/gcc-patches/2019-06/msg00641.html > PING. -- H.J.