https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95218
Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |law at redhat dot com --- Comment #16 from Jeffrey A. Law <law at redhat dot com> --- A "naked" use as an INSN should only occur inside the pattern of an insn (there are exceptins that exist internally within reload and delay slot scheduling). It's only supposed to be used to mark that a particular object is live and used by the insn. I'll note the following: ... This means that @code{use} can @emph{only} be used to describe that the register is live. You should think twice before adding @code{use} statements, more often you will want to use @code{unspec} instead. The @code{use} RTX is most commonly useful to describe that a fixed register is implicitly used in an insn. It is also safe to use in patterns where the compiler knows for other reasons that the result of the whole pattern is variable, such as @samp{cpymem@var{m}} or @samp{call} patterns. I think one could reasonably think that we should support (use (mem)) with the same semantics -- it means that the value in memory is used which is helpful in dependency tracking.