This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]