aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>2003-04-21 18:39:26 -0400
committerRichard Kenner <kenner@gcc.gnu.org>2003-04-21 18:39:26 -0400
commit4f0baa737f2e56b78f81f07efb9c2a55111edfe3 (patch)
tree1a7ef7004f56679e0eb185be64a8213b136e90a8 /gcc
parent3cd58fd7cee9dc559cd8deb125bd40ca4ef584af (diff)
downloadgcc-4f0baa737f2e56b78f81f07efb9c2a55111edfe3.zip
gcc-4f0baa737f2e56b78f81f07efb9c2a55111edfe3.tar.gz
gcc-4f0baa737f2e56b78f81f07efb9c2a55111edfe3.tar.bz2
Refine last change.
From-SVN: r65915
Diffstat (limited to 'gcc')
-rw-r--r--gcc/doc/rtl.texi19
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi
index 33057c3..8368b49 100644
--- a/gcc/doc/rtl.texi
+++ b/gcc/doc/rtl.texi
@@ -725,10 +725,21 @@ Stored in the @code{integrated} field and printed as @samp{/i}.
@item RTX_UNCHANGING_P (@var{x})
Nonzero in a @code{reg}, @code{mem}, or @code{concat} if the register or
memory is set at most once, anywhere. This does not mean that it is
-function invariant. This flag is used to determine whether two
-references conflict. See @code{tree_dependence} in @file{alias.c} for
-more details. Stored in the @code{unchanging} field and printed as
-@samp{/u}.
+function invariant.
+
+GCC uses this flag to determine whether two references conflict. As
+implemented by @code{true_dependence} in @file{alias.c} for memory
+references, unchanging memory can't conflict with non-unchanging memory;
+a non-unchanging read can conflict with a non-unchanging write; an
+unchanging read can conflict with an unchanging write (since there may
+be a single store to this address to initialize it); and an unchanging
+store can conflict with a non-unchanging read. This means we must make
+conservative assumptions when chosing the value of this flag for a
+memory reference to an object containing both unchanging and
+non-unchanging fields: we must set the flag when writing to the object
+and clear it when reading from the object.
+
+Stored in the @code{unchanging} field and printed as @samp{/u}.
@findex SCHED_GROUP_P
@cindex @code{insn} and @samp{/s}