From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 68654 invoked by alias); 14 Feb 2020 18:34:47 -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 68640 invoked by uid 89); 14 Feb 2020 18:34:46 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.1 spammy=H*MI:sk:cover.1, invite, Our X-HELO: resqmta-po-10v.sys.comcast.net Received: from resqmta-po-10v.sys.comcast.net (HELO resqmta-po-10v.sys.comcast.net) (96.114.154.169) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 14 Feb 2020 18:34:45 +0000 Received: from resomta-po-06v.sys.comcast.net ([96.114.154.230]) by resqmta-po-10v.sys.comcast.net with ESMTP id 2fBij3n8M2WZ82fnYjL9LU; Fri, 14 Feb 2020 18:34:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=20190202a; t=1581705284; bh=R7HUxAatzrpv8PIHnHJxPufAjqr5DT1YekPMwexPzY8=; h=Received:Received:Content-Type:Mime-Version:Subject:From:Date: Message-Id:To; b=EbEbDfQzzw5d87cksKWubPlaTwuJYuCpjtUJpE7+c4qvixS2lzlwsS+zvRSk9o8KG 4K8BNAaMSkfnsKtxHdRipfRQR3bfxmWKECaPWedZ69tXdHUsUHjK6facR00I2hytUe 5BFgFzEDTtqT+Kbt5854vmGwKrLapmIzKBZmSvISk1MxObzCleUHOimLKemQ//TNsI 4xlwxnhAuMh8a/QP+JRNGnKGwxHULepj55rwjt37/Ob2ogQQpraxFdhV5MtXOFCD4P VfVhzqZqKoFCLJz0CRRanyvU+HhyjFVRXvZKRa4ZLp+Q7ErNOZO8YnuZflImkCe6t7 GROPG9Lom2VgA== Received: from [IPv6:2601:640:4000:fcbb:c9c9:31a8:ceb7:ab81] ([IPv6:2601:640:4000:fcbb:c9c9:31a8:ceb7:ab81]) by resomta-po-06v.sys.comcast.net with ESMTPA id 2fnVj8LYLx4fr2fnVjUd7M; Fri, 14 Feb 2020 18:34:42 +0000 X-Xfinity-VMeta: sc=-51.00;st=legit Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: Re: [PATCH 00/14] rs6000: Begin replacing built-in support From: Mike Stump In-Reply-To: <20200204174037.GK22482@gate.crashing.org> Date: Fri, 14 Feb 2020 18:34:00 -0000 Cc: Bill Schmidt , gcc-patches@gcc.gnu.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <20200204174037.GK22482@gate.crashing.org> To: Segher Boessenkool X-IsSubscribed: yes X-SW-Source: 2020-02/txt/msg00872.txt.bz2 On Feb 4, 2020, at 9:40 AM, Segher Boessenkool = wrote: >> My intent is to make adding new built-in functions as simple as adding >> a few lines to a couple of files, and automatically generating as much >> of the initialization, overload resolution, and expansion logic as >> possible. This patch series establishes the format of the input files >> and creates a new program (rs6000-genbif) to: >=20 > Let's call it rs6000-gen-builtins or similar. Not as cryptic. Or, config/gen-builtins. :-) We have one around here, and there are thing= s that a generator can have that are really, generally useful. It's better= to share support for common thing and for very target specific things, of = course, they can go down in the rs6000 area. Our generators are written in= python, and for this type of code, python is nice. My workflow with my ge= nerators let's me validate changes to the generator easily, as I can compar= e a before and after of the generated content. Once you push the common parts down and invite others to join the party, th= e next port can reuse the bits you have, and add the 1 or 5 things they nee= d, and presto, you now have more beef, should you need it in the future. A= round here, we have more beef than anyone, as we always hit things no one e= lse has. In/out rtl parameters, out parameters, overloading, test case gen= eration, early, late expansion, type fun, vector fun, architecture fun, opt= ional parameters, gosh, the list just goes on and on... Anyway, as a new p= ort comes on line, it's easier for them to retrofit the 3 new things they n= eed into a nice infrastructure that sings and dances. Indeed, some of the older gcc port interfaces, for example, registers (FIXE= D_REGISTERS, CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER, HARD_REGNO_CALLER= _SAVE_MODE, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES), I think w= ould be a nice area for a generator as well. Every port has registers, and= yet, those interfaces are too clunky. But, now I guess I digress. Just wanted to say, I like your plan.