From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6134 invoked by alias); 12 Jan 2015 22:19:46 -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 6125 invoked by uid 89); 12 Jan 2015 22:19:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,MEDICAL_SUBJECT,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-wg0-f54.google.com Received: from mail-wg0-f54.google.com (HELO mail-wg0-f54.google.com) (74.125.82.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 12 Jan 2015 22:19:44 +0000 Received: by mail-wg0-f54.google.com with SMTP id z12so21944790wgg.13 for ; Mon, 12 Jan 2015 14:19:41 -0800 (PST) X-Received: by 10.180.211.34 with SMTP id mz2mr34149114wic.56.1421101181103; Mon, 12 Jan 2015 14:19:41 -0800 (PST) Received: from localhost ([95.144.14.138]) by mx.google.com with ESMTPSA id u9sm23253240wjy.37.2015.01.12.14.19.40 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Jan 2015 14:19:40 -0800 (PST) From: Richard Sandiford To: James Greenhalgh Mail-Followup-To: James Greenhalgh ,gcc-patches@gcc.gnu.org, gerald@pfeifer.com, joseph@codesourcery.com, rdsandiford@googlemail.com Cc: gcc-patches@gcc.gnu.org, gerald@pfeifer.com, joseph@codesourcery.com Subject: Re: [Patch docs 1/5] Update the first section of md.texi References: <1420543302-11008-1-git-send-email-james.greenhalgh@arm.com> <1420543302-11008-2-git-send-email-james.greenhalgh@arm.com> Date: Mon, 12 Jan 2015 22:29:00 -0000 In-Reply-To: <1420543302-11008-2-git-send-email-james.greenhalgh@arm.com> (James Greenhalgh's message of "Tue, 6 Jan 2015 11:21:38 +0000") Message-ID: <87siff8ww3.fsf@googlemail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2015-01/txt/msg00769.txt.bz2 James Greenhalgh writes: > -For the generate pass, only the names of the insns matter, from either a > -named @code{define_insn} or a @code{define_expand}. The compiler will > +When expanding from gimple to RTL, only named @code{define_insn} > +constructs and @code{define_expand} constructs are used. The compiler will > choose the pattern with the right name and apply the operands according > to the documentation later in this chapter, without regard for the RTL > -template or operand constraints. Note that the names the compiler looks > -for are hard-coded in the compiler---it will ignore unnamed patterns and > -patterns with names it doesn't know about, but if you don't provide a > -named pattern it needs, it will abort. > +template or operand constraints. Note that the names which are used for > +expansion are hard-coded in the compiler---unnamed patterns and patterns > +with names which do not have a standard meaning are ignored during > +expansion. If you don't provide a named pattern that the compiler is > +trying to expand, it may try a different expansion strategy. If no > +other expansion strategies are possible, the compiler will abort. Minor nit, I think both "which"es here should be "that"s. > If a @code{define_insn} is used, the template given is inserted into the > -insn list. If a @code{define_expand} is used, one of three things > -happens, based on the condition logic. The condition logic may manually > -create new insns for the insn list, say via @code{emit_insn()}, and > -invoke @code{DONE}. For certain named patterns, it may invoke @code{FAIL} to tell the > -compiler to use an alternate way of performing that task. If it invokes > -neither @code{DONE} nor @code{FAIL}, the template given in the pattern > +insn list. > + > +If a @code{define_expand} is used, one of three things happens, encoded in > +the condition logic. The condition logic may manually create new insns > +for the insn list, say via @code{emit_insn ()}, and invoke @code{DONE}, > +indicating a successful expansion. If the standard pattern name permits > +it, the condition logic may invoke @code{FAIL} to express that an alternate > +strategy should be used to performing the expansion. If the condition logic > +invokes neither @code{DONE} nor @code{FAIL}, the template given in the pattern Can we s/alternate/alternative/ at the same time? I think "alternative" is still correct in US English. s/to performing/to perform/. Thanks, Richard