* doc/rtl.texi (Flags): Update to reflect current usage.
From-SVN: r53242
This commit is contained in:
parent
1f77b5da98
commit
4afe395245
@ -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
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user