linux-mips
[Top] [All Lists]

Re: RTL explaination

To: kernel coder <lhrkernelcoder@gmail.com>
Subject: Re: RTL explaination
From: James E Wilson <wilson@specifix.com>
Date: Wed, 07 Jun 2006 11:40:22 -0700
Cc: linux-mips@linux-mips.org
In-reply-to: <f69849430606070556hb60fa66m50c58a93667e368b@mail.gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <f69849430606070556hb60fa66m50c58a93667e368b@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
On Wed, 2006-06-07 at 05:56, kernel coder wrote:
> [0 a+0 S4 A32])) -1 (nil)

This is a relatively recent addition to the RTL.  The older parts of the
documentation won't refer to them.

This is memory aliasing info.  The a+0 is the variable+offset.  The A32
is the alignment, 32-bits.  The S4 is the size, 4-bytes.  The "0" is the
alias set.  Objects are grouped into sets, where each item in the set
may alias any other item in the set.  Since you have only one item, it
is in set 0.

In the gcc sources, see the MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET,
MEM_SIZE, and MEM_ALIGN attributes for mem rtx.

This kind of question should probably go to the gcc@gcc.gnu.org list
instead of a linux kernel list.
-- 
Jim Wilson, GNU Tools Support, http://www.specifix.com


<Prev in Thread] Current Thread [Next in Thread>