Commit 4afe3952 by Janis Johnson Committed by Janis Johnson

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

From-SVN: r53242
parent 1f77b5da
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> 2002-05-06 Roger Sayle <roger@eyesopen.com>
PR opt/3995 PR opt/3995
......
...@@ -371,7 +371,7 @@ to access them. ...@@ -371,7 +371,7 @@ to access them.
RTL expressions contain several flags (one-bit bit-fields) RTL expressions contain several flags (one-bit bit-fields)
that are used in certain types of expression. Most often they 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 @table @code
@findex CONSTANT_POOL_ADDRESS_P @findex CONSTANT_POOL_ADDRESS_P
...@@ -413,9 +413,16 @@ Stored in the @code{in_struct} field and printed as @samp{/s}. ...@@ -413,9 +413,16 @@ Stored in the @code{in_struct} field and printed as @samp{/s}.
@findex INSN_DELETED_P @findex INSN_DELETED_P
@cindex @code{insn} and @samp{/v} @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}) @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}. @code{volatil} field and printed as @samp{/v}.
@findex INSN_FROM_TARGET_P @findex INSN_FROM_TARGET_P
...@@ -441,39 +448,23 @@ label. Stored in the @code{in_struct} field and printed as @samp{/s}. ...@@ -441,39 +448,23 @@ label. Stored in the @code{in_struct} field and printed as @samp{/s}.
@findex LABEL_PRESERVE_P @findex LABEL_PRESERVE_P
@cindex @code{code_label} and @samp{/i} @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}) @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. 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 Labels referenced by a non-local goto will have this bit set. Stored
in the @code{in_struct} field and printed as @samp{/s}. in the @code{in_struct} field and printed as @samp{/s}.
@findex LABEL_REF_NONLOCAL_P @findex LABEL_REF_NONLOCAL_P
@cindex @code{label_ref} and @samp{/v} @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}) @item LABEL_REF_NONLOCAL_P (@var{x})
In @code{label_ref} and @code{reg_label} expressions, nonzero if this is In @code{label_ref} and @code{reg_label} expressions, nonzero if this is
a reference to a non-local label. a reference to a non-local label.
Stored in the @code{volatil} field and printed as @samp{/v}. 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 @findex MEM_IN_STRUCT_P
@cindex @code{mem} and @samp{/s} @cindex @code{mem} and @samp{/s}
@cindex @code{in_struct}, in @code{mem} @cindex @code{in_struct}, in @code{mem}
...@@ -508,7 +499,8 @@ Stored in the @code{frame_related} field and printed as @samp{/f}. ...@@ -508,7 +499,8 @@ Stored in the @code{frame_related} field and printed as @samp{/f}.
@findex MEM_VOLATILE_P @findex MEM_VOLATILE_P
@cindex @code{mem} and @samp{/v} @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}) @item MEM_VOLATILE_P (@var{x})
In @code{mem} and @code{asm_operands} expressions, nonzero for volatile In @code{mem} and @code{asm_operands} expressions, nonzero for volatile
memory references. memory references.
...@@ -553,9 +545,14 @@ in this kind of use. ...@@ -553,9 +545,14 @@ in this kind of use.
@findex RTX_FRAME_RELATED_P @findex RTX_FRAME_RELATED_P
@cindex @code{insn} and @samp{/f} @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}) @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. 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 This flag should also be set on an instruction that sets up a temporary
register to use in place of the frame pointer. register to use in place of the frame pointer.
...@@ -582,26 +579,43 @@ prologues. ...@@ -582,26 +579,43 @@ prologues.
@findex RTX_INTEGRATED_P @findex RTX_INTEGRATED_P
@cindex @code{insn} and @samp{/i} @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}) @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. resulted from an in-line function call.
Stored in the @code{integrated} field and printed as @samp{/i}. Stored in the @code{integrated} field and printed as @samp{/i}.
@findex RTX_UNCHANGING_P @findex RTX_UNCHANGING_P
@cindex @code{reg} and @samp{/u} @cindex @code{reg} and @samp{/u}
@cindex @code{mem} and @samp{/u} @cindex @code{mem} and @samp{/u}
@cindex @code{concat} and @samp{/u}
@cindex @code{unchanging}, in @code{reg} and @code{mem} @cindex @code{unchanging}, in @code{reg} and @code{mem}
@item RTX_UNCHANGING_P (@var{x}) @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. anywhere. This does not mean that it is function invariant.
Stored in the @code{unchanging} field and printed as @samp{/u}. Stored in the @code{unchanging} field and printed as @samp{/u}.
@findex SCHED_GROUP_P @findex SCHED_GROUP_P
@cindex @code{insn} and @samp{/i} @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}) @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 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 ensure that certain groups of instructions will not be split up by the
instruction scheduling pass, for example, @code{use} insns before instruction scheduling pass, for example, @code{use} insns before
...@@ -696,8 +710,7 @@ These are the fields to which the above macros refer: ...@@ -696,8 +710,7 @@ These are the fields to which the above macros refer:
@findex call @findex call
@cindex @samp{/c} in RTL dump @cindex @samp{/c} in RTL dump
@item call @item call
In the @code{LOG_LINKS} of an @code{insn_list} during scheduling, 1 means that This flag is currently unused.
the cost of executing an instruction through the link is zero.
In an RTL dump, this flag is represented as @samp{/c}. 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. ...@@ -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 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}. In an RTL dump, this flag is represented as @samp{/j}.
@findex unchanging @findex unchanging
...@@ -793,7 +803,8 @@ that the value of the expression never changes. ...@@ -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 In @code{subreg} expressions, it is 1 if the @code{subreg} references an
unsigned object whose mode has been promoted to a wider mode. 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 In a @code{symbol_ref} expression, 1 means that this symbol addresses
something in the per-function constant pool. something in the per-function constant pool.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment