* doc/rtl.texi (Flags): Update to reflect current usage.

From-SVN: r53242
This commit is contained in:
Janis Johnson 2002-05-06 23:33:10 +00:00 committed by Janis Johnson
parent 1f77b5da98
commit 4afe395245
2 changed files with 53 additions and 38 deletions

View File

@ -1,3 +1,7 @@
2002-05-06 Janis Johnson <janis187@us.ibm.com>
* doc/rtl.texi (Flags): Update to reflect current usage.
2002-05-06 Roger Sayle <roger@eyesopen.com>
PR opt/3995

View File

@ -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.