From 4afe395245206ed4085058134148ff2bd0aab1f6 Mon Sep 17 00:00:00 2001 From: Janis Johnson Date: Mon, 6 May 2002 23:33:10 +0000 Subject: * doc/rtl.texi (Flags): Update to reflect current usage. From-SVN: r53242 --- gcc/ChangeLog | 4 +++ gcc/doc/rtl.texi | 87 +++++++++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 38 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd44b15..cfa506c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-05-06 Janis Johnson + + * doc/rtl.texi (Flags): Update to reflect current usage. + 2002-05-06 Roger Sayle PR opt/3995 diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index efe3647..e244612 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -371,7 +371,7 @@ to access them. RTL expressions contain several flags (one-bit bit-fields) that are used in certain types of expression. Most often they -are accessed with the following macros, which expand into lvalues: +are accessed with the following macros, which expand into lvalues. @table @code @findex CONSTANT_POOL_ADDRESS_P @@ -413,9 +413,16 @@ Stored in the @code{in_struct} field and printed as @samp{/s}. @findex INSN_DELETED_P @cindex @code{insn} and @samp{/v} -@cindex @code{volatil}, in @code{insn} +@cindex @code{call_insn} and @samp{/v} +@cindex @code{jump_insn} and @samp{/v} +@cindex @code{code_label} and @samp{/v} +@cindex @code{barrier} and @samp{/v} +@cindex @code{note} and @samp{/v} +@cindex @code{volatil}, in @code{insn}, @code{call_insn}, @code{jump_insn}, @code{code_label}, @code{barrier}, and @code{note} @item INSN_DELETED_P (@var{x}) -In an @code{insn}, nonzero if the insn has been deleted. Stored in the +In an @code{insn}, @code{call_insn}, @code{jump_insn}, @code{code_label}, +@code{barrier}, or @code{note}, +nonzero if the insn has been deleted. Stored in the @code{volatil} field and printed as @samp{/v}. @findex INSN_FROM_TARGET_P @@ -441,39 +448,23 @@ label. Stored in the @code{in_struct} field and printed as @samp{/s}. @findex LABEL_PRESERVE_P @cindex @code{code_label} and @samp{/i} -@cindex @code{in_struct}, in @code{code_label} +@cindex @code{note} and @samp{/i} +@cindex @code{in_struct}, in @code{code_label} and @code{note} @item LABEL_PRESERVE_P (@var{x}) -In a @code{code_label}, indicates that the label is referenced by +In a @code{code_label} or @code{note}, indicates that the label is referenced by code or data not visible to the RTL of a given function. Labels referenced by a non-local goto will have this bit set. Stored in the @code{in_struct} field and printed as @samp{/s}. @findex LABEL_REF_NONLOCAL_P @cindex @code{label_ref} and @samp{/v} -@cindex @code{volatil}, in @code{label_ref} +@cindex @code{reg_label} and @samp{/v} +@cindex @code{volatil}, in @code{label_ref} and @code{reg_label} @item LABEL_REF_NONLOCAL_P (@var{x}) In @code{label_ref} and @code{reg_label} expressions, nonzero if this is a reference to a non-local label. Stored in the @code{volatil} field and printed as @samp{/v}. -@findex LINK_COST_FREE -@cindex @code{insn_list} and @samp{/c} -@cindex @code{call}, in @code{insn_list} -@item LINK_COST_FREE (@var{x}) -In the @code{LOG_LINKS} @code{insn_list} during scheduling, nonzero when -the cost of executing an instruction through the link is zero, i.e., the -link makes the cost free. Stored in the @code{call} field and printed -as @samp{/c}. - -@findex LINK_COST_ZERO -@cindex @code{insn_list} and @samp{/j} -@cindex @code{jump}, in @code{insn_list} -@item LINK_COST_ZERO (@var{x}) -In the @code{LOG_LINKS} @code{insn_list} during scheduling, nonzero when -the cost of executing an instruction through the link varies and is -unchanged, i.e., the link has zero additional cost. -Stored in the @code{jump} field and printed as @samp{/j}. - @findex MEM_IN_STRUCT_P @cindex @code{mem} and @samp{/s} @cindex @code{in_struct}, in @code{mem} @@ -508,7 +499,8 @@ Stored in the @code{frame_related} field and printed as @samp{/f}. @findex MEM_VOLATILE_P @cindex @code{mem} and @samp{/v} -@cindex @code{volatil}, in @code{mem} +@cindex @code{asm_operands} and @samp{/v} +@cindex @code{volatil}, in @code{mem} and @code{asm_operands} @item MEM_VOLATILE_P (@var{x}) In @code{mem} and @code{asm_operands} expressions, nonzero for volatile memory references. @@ -553,9 +545,14 @@ in this kind of use. @findex RTX_FRAME_RELATED_P @cindex @code{insn} and @samp{/f} -@cindex @code{frame_related}, in @code{insn} +@cindex @code{call_insn} and @samp{/f} +@cindex @code{jump_insn} and @samp{/f} +@cindex @code{barrier} and @samp{/f} +@cindex @code{set} and @samp{/f} +@cindex @code{frame_related}, in @code{insn}, @code{call_insn}, @code{jump_insn}, @code{barrier}, and @code{set} @item RTX_FRAME_RELATED_P (@var{x}) -Nonzero in an @code{insn} or @code{set} which is part of a function prologue +Nonzero in an @code{insn}, @code{call_insn}, @code{jump_insn}, +@code{barrier}, or @code{set} which is part of a function prologue and sets the stack pointer, sets the frame pointer, or saves a register. This flag should also be set on an instruction that sets up a temporary register to use in place of the frame pointer. @@ -582,26 +579,43 @@ prologues. @findex RTX_INTEGRATED_P @cindex @code{insn} and @samp{/i} -@cindex @code{integrated}, in @code{insn} +@cindex @code{call_insn} and @samp{/i} +@cindex @code{jump_insn} and @samp{/i} +@cindex @code{barrier} and @samp{/i} +@cindex @code{code_label} and @samp{/i} +@cindex @code{insn_list} and @samp{/i} +@cindex @code{const} and @samp{/i} +@cindex @code{note} and @samp{/i} +@cindex @code{integrated}, in @code{insn}, @code{call_insn}, @code{jump_insn}, @code{barrier}, @code{code_label}, @code{insn_list}, @code{const}, and @code{note} @item RTX_INTEGRATED_P (@var{x}) -Nonzero in an @code{insn}, @code{insn_list}, or @code{const} if it +Nonzero in an @code{insn}, @code{call_insn}, @code{jump_insn}, @code{barrier}, +@code{code_label}, @code{insn_list}, @code{const}, or @code{note} if it resulted from an in-line function call. Stored in the @code{integrated} field and printed as @samp{/i}. @findex RTX_UNCHANGING_P @cindex @code{reg} and @samp{/u} @cindex @code{mem} and @samp{/u} +@cindex @code{concat} and @samp{/u} @cindex @code{unchanging}, in @code{reg} and @code{mem} @item RTX_UNCHANGING_P (@var{x}) -Nonzero in a @code{reg} or @code{mem} if the memory is set at most once, +Nonzero in a @code{reg}, @code{mem}, or @code{concat} if the memory +is set at most once, anywhere. This does not mean that it is function invariant. Stored in the @code{unchanging} field and printed as @samp{/u}. @findex SCHED_GROUP_P @cindex @code{insn} and @samp{/i} -@cindex @code{in_struct}, in @code{insn} +@cindex @code{call_insn} and @samp{/i} +@cindex @code{jump_insn} and @samp{/i} +@cindex @code{code_label} and @samp{/i} +@cindex @code{barrier} and @samp{/i} +@cindex @code{note} and @samp{/i} +@cindex @code{in_struct}, in @code{insn}, @code{jump_insn}, @code{call_insn}, @code{code_label}, @code{barrier}, and @code{note} @item SCHED_GROUP_P (@var{x}) -During instruction scheduling, in an @code{insn}, indicates that the +During instruction scheduling, in an @code{insn}, @code{call_insn}, +@code{jump_insn}, @code{code_label}, @code{barrier}, or +@code{note}, indicates that the previous insn must be scheduled together with this insn. This is used to ensure that certain groups of instructions will not be split up by the instruction scheduling pass, for example, @code{use} insns before @@ -696,8 +710,7 @@ These are the fields to which the above macros refer: @findex call @cindex @samp{/c} in RTL dump @item call -In the @code{LOG_LINKS} of an @code{insn_list} during scheduling, 1 means that -the cost of executing an instruction through the link is zero. +This flag is currently unused. In an RTL dump, this flag is represented as @samp{/c}. @@ -779,9 +792,6 @@ In a @code{set}, 1 means it is for a return. In a @code{call_insn}, 1 means it is a sibling call. -In the @code{LOG_LINKS} of an @code{insn_list} during scheduling, 1 means the -cost of executing an instruction through the link varies and is unchanging. - In an RTL dump, this flag is represented as @samp{/j}. @findex unchanging @@ -793,7 +803,8 @@ that the value of the expression never changes. In @code{subreg} expressions, it is 1 if the @code{subreg} references an unsigned object whose mode has been promoted to a wider mode. -In an @code{insn}, 1 means that this is an annulling branch. +In an @code{insn} in the delay slot of a branch instruction, 1 means +an annulling branch should be used. In a @code{symbol_ref} expression, 1 means that this symbol addresses something in the per-function constant pool. -- cgit v1.1