From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11060 invoked by alias); 26 Feb 2002 14:18:44 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 10890 invoked from network); 26 Feb 2002 14:18:34 -0000 Received: from unknown (HELO gull.prod.itd.earthlink.net) (207.217.120.84) by sources.redhat.com with SMTP; 26 Feb 2002 14:18:34 -0000 Received: from dialup-63.214.111.27.dial1.boston1.level3.net ([63.214.111.27] helo=[192.168.1.254]) by gull.prod.itd.earthlink.net with esmtp (Exim 3.33 #1) id 16fiR6-0001qx-00; Tue, 26 Feb 2002 06:18:33 -0800 Mime-Version: 1.0 X-Sender: qsmgmt@pop.earthlink.net Message-Id: In-Reply-To: <20020226135905.66957.qmail@web13206.mail.yahoo.com> References: <20020226135905.66957.qmail@web13206.mail.yahoo.com> Date: Tue, 26 Feb 2002 07:32:00 -0000 To: Danish Samad From: Alan Lehotsky Subject: Re: rtl dependency Cc: gcc@gcc.gnu.org, raufh@enabtech.com, durdana@enabtech.com Content-Type: text/plain; charset="us-ascii" X-SW-Source: 2002-02/txt/msg01575.txt.bz2 At 5:59 AM -0800 2/26/02, Danish Samad wrote: >hello, > > I have observed that different cross compilers >produce different RTL for the same peice of code. Yes. >Does this mean that unoptimized RTL generated is >dependent on target description macros if yes then >which macros? A great many of them! Pretty much all the things described in the sections of the porting guide that discuss Register Characteristics, Passing Arguments/ Stack Layout, Storage Layout, and Addressing Modes. > or is it only dependent on machine >descriptions? It's driven by the named patterns - like "movsi", "addsi3", etc. that the tree conversion code in expr.c and optabs.c knows about - but the target macros influence heavily what happens. >Further what would I have to do to >produce load store RTL instructions for a >initialization such as i=4; Look at an existing load/store machine - there are a bunch of 'em. Typically what you do is write a "movsi" define_expand pattern that checks to see if at least one of the operands is a REG and forces the OTHER operand to a register. E.g., if you tried to do a memory-to-memory move, you'd force the source to a register and then move that register to memory. -- ------------------------------------------------------------------------ Quality Software Management http://home.earthlink.net/~qsmgmt apl@alum.mit.edu (978)287-0435 Voice (978)808-6836 Cell (978)287-0436 Fax Software Process Improvement and Management Consulting Language Design and Compiler Implementation