From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15123 invoked by alias); 22 Jun 2009 11:21:35 -0000 Received: (qmail 15113 invoked by uid 22791); 22 Jun 2009 11:21:35 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-ew0-f225.google.com (HELO mail-ew0-f225.google.com) (209.85.219.225) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 22 Jun 2009 11:21:29 +0000 Received: by ewy25 with SMTP id 25so318992ewy.8 for ; Mon, 22 Jun 2009 04:21:26 -0700 (PDT) Received: by 10.211.168.4 with SMTP id v4mr4709089ebo.90.1245669685529; Mon, 22 Jun 2009 04:21:25 -0700 (PDT) Received: from ?192.168.2.99? (cpc2-cmbg8-0-0-cust61.cmbg.cable.ntl.com [82.6.108.62]) by mx.google.com with ESMTPS id 7sm418536eyb.25.2009.06.22.04.21.24 (version=SSLv3 cipher=RC4-MD5); Mon, 22 Jun 2009 04:21:24 -0700 (PDT) Message-ID: <4A3F6C1B.5090608@gmail.com> Date: Mon, 22 Jun 2009 11:21:00 -0000 From: Dave Korn User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: "daniel.tian" CC: gcc@gcc.gnu.org Subject: Re: How to deal with unrecognizable RTL code References: <20090622015406.66FDB50C9C23@mail.mavrixtech.com.cn> In-Reply-To: <20090622015406.66FDB50C9C23@mail.mavrixtech.com.cn> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2009-06/txt/msg00501.txt.bz2 daniel.tian wrote: > But I have already defined the PROMOTE_MODE which will convert all the > QImode, HImode to SImode in computation. ? That's not what the code you posted says: > PROMOTE_MODE, stolen from mips, is defined in my port: > #define PROMOTE_MODE(MODE, UNSIGNEDP, TYPE) \ > if (GET_MODE_CLASS (MODE) == MODE_INT \ > && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ > { \ > (MODE) = Pmode; \ > } The docs for PROMOTE_MODE suggest using `word_mode'; it may be that on mips, Pmode and word_mode are the same, but they aren't on your machine? > And the RTL mentioned, including > " SUBREG " should not exist after reload. Now all the instructions > pattern, which modes are smaller than SImode, formed in SUBREG. Is one of your MD macros not handling the post-reload REG_OK_STRICT macro correctly perhaps? cheers, DaveK