This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Set RTX_UNCHANGING is readonly_field_p when clearing
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: mark at codesourcery dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 21 Apr 03 17:46:19 EDT
- Subject: Re: Set RTX_UNCHANGING is readonly_field_p when clearing
You stated a rule, involving distinctions between loads and stores. If
that's presently the rule, update the docs to say so. If that won't
always be the rule say "this might change if we fix some bugs."
That "rule" does not affect the definition of RTX_UNCHANGING_P. Rather, it
says whether or not the bit has to be set for a given reference if that
reference is to a aggregate object in order to meet the conditions for the
bit, as properly documented.
In other words, it says how to generate code to ensure the bit is set as
documented.
And it's not new. It was first done years ago in expand_expr case
INDIRECT_REF:
/* If we are writing to this object and its type is a record with
readonly fields, we must mark it as readonly so it will
conflict with readonly references to those fields. */
if (modifier == EXPAND_WRITE && readonly_fields_p (type))
RTX_UNCHANGING_P (temp) = 1;
This patch just adds a missed occurence of the same thing.
If that's not presently the rule, then revert your patch; that rule
was the justification you used for your check-in.
As I said, that "rule" is not new: it's been the case for years. This
check-in just catches a case previously missed.