From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 80496 invoked by alias); 14 Jun 2016 23:38:38 -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 80383 invoked by uid 89); 14 Jun 2016 23:38:37 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy=validating X-HELO: mail-wm0-f41.google.com Received: from mail-wm0-f41.google.com (HELO mail-wm0-f41.google.com) (74.125.82.41) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Tue, 14 Jun 2016 23:38:18 +0000 Received: by mail-wm0-f41.google.com with SMTP id m124so11580723wme.1 for ; Tue, 14 Jun 2016 16:38:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=F+uLpH7KBADPED+1wJIbJUSneJ6Bf8i0ACLT8rn95Y4=; b=Kp++SGDzo+sVIUizwjIMGoyl+Qq1SCImj1rhGEwIjb7sah/iq1OdU+sGlxF170AoCn mOg22G9aCRtHJZ+mnJvuEBZBVcRYqRRXlgqKvTTBkz6wnkhmWlTL68DIvPQN4zfOHHWX SI/JBNzY/G3V/uI2T7+v3MqkSVaki+WOBB8D4xhzPl7Cnei+miLLuq89/dBi3d+7ksgU WOZPJtk/1W+sL3OsX3l+aiSOfNySMOhWfJVbhF+Bc7crqIKV4jFq6ZA7D144IDEbNMNr Auc1xZ6Od4TDOJKccEDo90MBwgh/fkcY9NLQh+l4OlkILsFzfjO3hvotwGGDiXqMikCF MJlg== X-Gm-Message-State: ALyK8tLX+wouNu6ABJbWHBjER8517Oi9PZLFZTxr1egPyWazNhyU3wziVaX0HSgf8j6+cA== X-Received: by 10.194.164.200 with SMTP id ys8mr8285243wjb.79.1465947495979; Tue, 14 Jun 2016 16:38:15 -0700 (PDT) Received: from localhost (host86-156-236-89.range86-156.btcentralplus.com. [86.156.236.89]) by smtp.gmail.com with ESMTPSA id w81sm1051166wmg.20.2016.06.14.16.38.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 14 Jun 2016 16:38:15 -0700 (PDT) From: Andrew Burgess To: gcc-patches@gcc.gnu.org Cc: Joern Wolfgang Rennecke , Andrew Burgess Subject: [PATCH 2/2] gcc/genrecog: Don't warn for missing mode on special predicates Date: Tue, 14 Jun 2016 23:38:00 -0000 Message-Id: <65124582452f1e6ba9f95992684363b0ae5ef0be.1465946922.git.andrew.burgess@embecosm.com> In-Reply-To: References: In-Reply-To: References: <57605105.7050507@amylaar.uk> X-IsSubscribed: yes X-SW-Source: 2016-06/txt/msg01093.txt.bz2 In md.texi it says: Predicates written with @code{define_special_predicate} do not get any automatic mode checks, and are treated as having special mode handling by @command{genrecog}. However, in genrecog, when validating a SET pattern, if either the source or destination is missing a mode then a warning is given, even if there's a predicate defined with define_special_predicate. This commit silences the warning for special predicates. gcc/ChangeLog: * genrecog.c (validate_pattern): Don't warn about missing mode for define_special_predicate predicates. Acked-by: Andrew Burgess --- gcc/ChangeLog | 5 +++++ gcc/genrecog.c | 22 +++++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gcc/genrecog.c b/gcc/genrecog.c index a9f5a4a..7596552 100644 --- a/gcc/genrecog.c +++ b/gcc/genrecog.c @@ -674,9 +674,25 @@ validate_pattern (rtx pattern, md_rtx_info *info, rtx set, int set_code) && !CONST_WIDE_INT_P (src) && GET_CODE (src) != CALL) { - const char *which; - which = (dmode == VOIDmode ? "destination" : "source"); - message_at (info->loc, "warning: %s missing a mode?", which); + const char *which_msg; + rtx which; + const char *pred_name; + const struct pred_data *pred; + + which_msg = (dmode == VOIDmode ? "destination" : "source"); + which = (dmode == VOIDmode ? dest : src); + pred_name = XSTR (which, 1); + if (pred_name[0] != 0) + { + pred = lookup_predicate (pred_name); + if (!pred) + error_at (info->loc, "unknown predicate '%s'", pred_name); + } + else + pred = 0; + if (!pred || !pred->special) + message_at (info->loc, "warning: %s missing a mode?", + which_msg); } if (dest != SET_DEST (pattern)) -- 2.6.4