From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5473 invoked by alias); 12 Dec 2009 02:15:56 -0000 Received: (qmail 5464 invoked by uid 22791); 12 Dec 2009 02:15:55 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,RDNS_DYNAMIC,SPF_HELO_PASS,SPF_PASS,TVD_RCVD_IP X-Spam-Check-By: sourceware.org Received: from 216-239-44-51.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 12 Dec 2009 02:15:49 +0000 Received: from kpbe20.cbf.corp.google.com (kpbe20.cbf.corp.google.com [172.25.105.84]) by smtp-out.google.com with ESMTP id nBC2FlMP019235 for ; Fri, 11 Dec 2009 18:15:47 -0800 Received: from yxe5 (yxe5.prod.google.com [10.190.2.5]) by kpbe20.cbf.corp.google.com with ESMTP id nBC2FjZD028084 for ; Fri, 11 Dec 2009 18:15:45 -0800 Received: by yxe5 with SMTP id 5so1381788yxe.24 for ; Fri, 11 Dec 2009 18:15:45 -0800 (PST) Received: by 10.150.254.7 with SMTP id b7mr3690328ybi.137.1260584144273; Fri, 11 Dec 2009 18:15:44 -0800 (PST) Received: from coign.google.com ([67.218.103.75]) by mx.google.com with ESMTPS id 39sm1125737yxd.9.2009.12.11.18.15.40 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 11 Dec 2009 18:15:42 -0800 (PST) To: noeljohn Cc: gcc-help@gcc.gnu.org Subject: Re: Emission of store_multiple and load_multiple patterns References: <26739724.post@talk.nabble.com> From: Ian Lance Taylor Date: Sat, 12 Dec 2009 02:21:00 -0000 In-Reply-To: <26739724.post@talk.nabble.com> (noeljohn's message of "Thu\, 10 Dec 2009 23\:29\:21 -0800 \(PST\)") Message-ID: User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gcc-help-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-help-owner@gcc.gnu.org X-SW-Source: 2009-12/txt/msg00185.txt.bz2 noeljohn writes: > I am working on a new risc machine. I have defined the > "store_multiple" and "load_multiple" pattern and the system builds fine. But > when I compile the C program for a declared integer array, the > "store_multiple" and "load_multiple" patterns are not getting emitted. > Instead simple load and store patterns are emitted multiple times. As per > actual working store_multiple and load_multiple patters need to get emitted. What do your store_multiple and load_multiple insns look like? E.g., if they only work for consecutive registers, then gcc can only match them after register allocation, but there is no appropriate optimization pass to do so. In that case you are going to have write peepholes for them, and you're going to have to generate them explicitly in your backend's prologue and epilogue generation. Ian