From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 75541 invoked by alias); 15 May 2019 16:17:41 -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 75533 invoked by uid 89); 15 May 2019 16:17:41 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy= X-HELO: gate.crashing.org Received: from gate.crashing.org (HELO gate.crashing.org) (63.228.1.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 15 May 2019 16:17:39 +0000 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id x4FGHagd010536; Wed, 15 May 2019 11:17:36 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id x4FGHZQw010529; Wed, 15 May 2019 11:17:35 -0500 Date: Wed, 15 May 2019 16:17:00 -0000 From: Segher Boessenkool To: Richard Biener Cc: "Kewen.Lin" , Richard Biener , GCC Patches , Bill Schmidt , "bin.cheng" , Jakub Jelinek Subject: Re: [PATCH v2 3/3] Consider doloop cmp use in ivopts Message-ID: <20190515161734.GI8599@gate.crashing.org> References: <1557803406-123657-1-git-send-email-linkw@linux.ibm.com> <368b8ca4-dbae-b88c-23b3-dbae2bfd0dee@linux.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-IsSubscribed: yes X-SW-Source: 2019-05/txt/msg00869.txt.bz2 On Wed, May 15, 2019 at 10:47:31AM +0200, Richard Biener wrote: > Ah, so the key issue is that the doloop IV is "free"? That > is, it doesn't consume a general register and whatnot? That > is allocating this IV doesn't really interfere with other IVs? That is one half of it, yes. > But can other uses be based on the doloop IV easily (if the > IV doesn't reside in a general reg?)? Getting the value of the count reg can be expensive, that is the other half of it. > Otherwise I understand that IVOPTs doesn't properly cost > the doloop IV update and conditional branch. Currently it doesn't even *know* something is or isn't a doloop. And yeah that matters a lot for proper costing, on all targets that have a doloop. > That's clearly > something we should fix (maybe even indepenently on other > changes). One important thing is that we need to base costs > on a common base to not compare apples and oranges, didn't > dig into your patch in detail enough to see whether it > fits into the general cost model or whether it is a hack > ontop of everything. The different cost for a doloop is pretty easy... Might have to be a target hook though; on Power the decrement + compare-to-zero are "free", while on some other targets only the "compare" is. The cost for using the IV... For us we could just disallow it being used at all (except for the looping itself of course), but not sure what is optimal in general. Another hook? Segher