From patchwork Thu Nov 7 14:56:52 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yvan Roux X-Patchwork-Id: 289375 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id A06EA2C0095 for ; Fri, 8 Nov 2013 01:58:10 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:date:message-id:subject:from:to:cc:content-type; q=dns; s=default; b=LrUTU/UINTNhBNfwwVDzO0mjcuEjSgvE7boN4spCp79 GxDnIOO74sjMw/oZ3pnBrcYnCJeuyo9XtIpBFjzy06Ol2zHkc+WKvBI75rMzkZxW bLmQkAHvIFShEEOBV/eH7wLK2gmVhgfEKY4AJSLopTfIfLmyVIpCn5FZ/LGgK5SU = DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:date:message-id:subject:from:to:cc:content-type; s=default; bh=kuJOE5j+OU7frzZxAUvJ1OuZi84=; b=Zyq9tupl1abbVFKXw FOUIFoJbLxrvwtRxSxsNlaEZH1m5rUlzVKdeyZdx927xOdLshox7rLehn7xsmlWC 2PS+AxtL52H7MLSzFbd2TTlBhcZEkxqrFnSoLMDUGTDJ7CU4oS3g6BgTyZbjxPks CiGagCRDi5qjKWpK4WD/9JbZMw= Received: (qmail 19711 invoked by alias); 7 Nov 2013 14:57:57 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 19701 invoked by uid 89); 7 Nov 2013 14:57:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.1 required=5.0 tests=AWL, BAYES_50, RCVD_IN_DNSWL_LOW, RDNS_NONE, SPAM_SUBJECT, SPF_PASS, T_FRT_BELOW2, URIBL_BLOCKED autolearn=no version=3.3.2 X-HELO: mail-wi0-f179.google.com Received: from Unknown (HELO mail-wi0-f179.google.com) (209.85.212.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 07 Nov 2013 14:57:01 +0000 Received: by mail-wi0-f179.google.com with SMTP id hm4so730918wib.12 for ; Thu, 07 Nov 2013 06:56:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc :content-type; bh=y93Iz1di8MRzfdOS7jsaSPxuYECOfqPq+fv2hQwrELc=; b=CnQCYnjtnMkl4FlAMm0fHVTtYC74WdmtqTYBrcUIZ4vOvdpEyJl/Hi0600kGlOh8Zn 3APh18NridvDG7Gb9uc8uTrL7GlX4b4oNjFac4MWeOo6AzOI17GZI6ayA7CiFcPf3VyJ DjWGHHeZyNsIXsjgfVa1FSk+Fr/BOS1Z38v4PBIEcv+0/SoiSCpRwqGCQjkicIr6fwb3 zuhINCe2XnoHSxEW+7nOeiiy2YERI/YBqFgN78iXYa6hO2hH8VVjG7TRISiWiHbgZ6sv Mm7eDaiN/1TBhKYyv+nCyTY4EwCeuVlJoKCo2GjvjvZ2P8dXpk6zZKHBryXjyEfwUQXX 8wiA== X-Gm-Message-State: ALoCoQnyUHZN6NpuLj1sS8MgnoUL6xA32DLSLpm9QcWdAbulSboRGcbWjxpEUPVmdyg3Oux45va+ MIME-Version: 1.0 X-Received: by 10.180.73.231 with SMTP id o7mr3057772wiv.21.1383836212848; Thu, 07 Nov 2013 06:56:52 -0800 (PST) Received: by 10.217.92.194 with HTTP; Thu, 7 Nov 2013 06:56:52 -0800 (PST) Date: Thu, 7 Nov 2013 15:56:52 +0100 Message-ID: Subject: [PATCH, ARM, LRA] Fixed bootstrap failure in Thumb mode From: Yvan Roux To: "gcc-patches@gcc.gnu.org" , Vladimir Makarov , Ramana Radhakrishnan , Richard Earnshaw Cc: Patch Tracking X-IsSubscribed: yes Hi, this patch fixed an LRA cycling due to secondary reload (Thumb mode). Notice that this patch is a prerequisite to turn on LRA by default on ARM. Bootstrapped on a9 and a15 without any regression in the testsuite as LRA is off by default and with the regression reported in the thread bellow when LRA is on. http://gcc.gnu.org/ml/gcc-patches/2013-11/msg00725.html Thanks, Yvan 2013-11-07 Yvan Roux * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS for LRA. diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 1781b75..d054906 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -1266,11 +1266,12 @@ enum reg_class /* Must leave BASE_REGS reloads alone */ #define THUMB_SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \ - ((CLASS) != LO_REGS && (CLASS) != BASE_REGS \ - ? ((true_regnum (X) == -1 ? LO_REGS \ - : (true_regnum (X) + HARD_REGNO_NREGS (0, MODE) > 8) ? LO_REGS \ - : NO_REGS)) \ - : NO_REGS) + (lra_in_progress ? NO_REGS \ + : ((CLASS) != LO_REGS && (CLASS) != BASE_REGS \ + ? ((true_regnum (X) == -1 ? LO_REGS \ + : (true_regnum (X) + HARD_REGNO_NREGS (0, MODE) > 8) ? LO_REGS \ + : NO_REGS)) \ + : NO_REGS)) #define THUMB_SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, X) \ ((CLASS) != LO_REGS && (CLASS) != BASE_REGS \