md.texi (Standard Names): Update documentation for JUMP_TABLE_DATA changes.
* doc/md.texi (Standard Names) <casesi>: Update documentation for JUMP_TABLE_DATA changes. * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise. * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise. (Insns) <jump_table_data>: New entry. * doc/tm.texi: Regenerate. From-SVN: r197267
This commit is contained in:
parent
397186076b
commit
da5c6bdecf
5 changed files with 29 additions and 8 deletions
|
@ -1,5 +1,12 @@
|
|||
2013-03-30 Steven Bosscher <steven@gcc.gnu.org>
|
||||
|
||||
* doc/md.texi (Standard Names) <casesi>: Update documentation for
|
||||
JUMP_TABLE_DATA changes.
|
||||
* doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
|
||||
* doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
|
||||
(Insns) <jump_table_data>: New entry.
|
||||
* doc/tm.texi: Regenerate.
|
||||
|
||||
* cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
|
||||
|
||||
* postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
|
||||
|
|
|
@ -5641,7 +5641,7 @@ A label to jump to if the index has a value outside the bounds.
|
|||
@end enumerate
|
||||
|
||||
The table is an @code{addr_vec} or @code{addr_diff_vec} inside of a
|
||||
@code{jump_insn}. The number of elements in the table is one plus the
|
||||
@code{jump_table_data}. The number of elements in the table is one plus the
|
||||
difference between the upper bound and the lower bound.
|
||||
|
||||
@cindex @code{tablejump} instruction pattern
|
||||
|
|
|
@ -623,12 +623,13 @@ printed as @samp{/u}.
|
|||
@cindex @code{call_insn} and @samp{/v}
|
||||
@cindex @code{jump_insn} and @samp{/v}
|
||||
@cindex @code{code_label} and @samp{/v}
|
||||
@cindex @code{jump_table_data} 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}
|
||||
@cindex @code{volatil}, in @code{insn}, @code{call_insn}, @code{jump_insn}, @code{code_label}, @code{jump_table_data}, @code{barrier}, and @code{note}
|
||||
@item INSN_DELETED_P (@var{x})
|
||||
In an @code{insn}, @code{call_insn}, @code{jump_insn}, @code{code_label},
|
||||
@code{barrier}, or @code{note},
|
||||
@code{jump_table_data}, @code{barrier}, or @code{note},
|
||||
nonzero if the insn has been deleted. Stored in the
|
||||
@code{volatil} field and printed as @samp{/v}.
|
||||
|
||||
|
@ -782,10 +783,11 @@ Stored in the @code{unchanging} field and printed as @samp{/u}.
|
|||
@cindex @code{insn} and @samp{/s}
|
||||
@cindex @code{call_insn} and @samp{/s}
|
||||
@cindex @code{jump_insn} and @samp{/s}
|
||||
@cindex @code{in_struct}, in @code{insn}, @code{jump_insn} and @code{call_insn}
|
||||
@cindex @code{jump_table_data} and @samp{/s}
|
||||
@cindex @code{in_struct}, in @code{insn}, @code{call_insn}, @code{jump_insn} and @code{jump_table_data}
|
||||
@item SCHED_GROUP_P (@var{x})
|
||||
During instruction scheduling, in an @code{insn}, @code{call_insn} or
|
||||
@code{jump_insn}, indicates that the
|
||||
During instruction scheduling, in an @code{insn}, @code{call_insn},
|
||||
@code{jump_insn} or @code{jump_table_data}, 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
|
||||
|
@ -3537,6 +3539,18 @@ them, is the function @code{output_alternate_entry_point}, in
|
|||
|
||||
To set the kind of a label, use the @code{SET_LABEL_KIND} macro.
|
||||
|
||||
@findex jump_table_data
|
||||
@item jump_table_data
|
||||
A @code{jump_table_data} insn is a placeholder for the jump-table data
|
||||
of a @code{casesi} or @code{tablejump} insn. They are placed after
|
||||
a @code{tablejump_p} insn. A @code{jump_table_data} insn is not part o
|
||||
a basic blockm but it is associated with the basic block that ends with
|
||||
the @code{tablejump_p} insn. The @code{PATTERN} of a @code{jump_table_data}
|
||||
is always either an @code{addr_vec} or an @code{addr_diff_vec}, and a
|
||||
@code{jump_table_data} insn is always preceded by a @code{code_label}.
|
||||
The @code{tablejump_p} insn refers to that @code{code_label} via its
|
||||
@code{JUMP_LABEL}.
|
||||
|
||||
@findex barrier
|
||||
@item barrier
|
||||
Barriers are placed in the instruction stream when control cannot flow
|
||||
|
|
|
@ -8798,7 +8798,7 @@ fprintf (@var{stream}, "\t.word L%d\n", @var{value})
|
|||
Define this if the label before a jump-table needs to be output
|
||||
specially. The first three arguments are the same as for
|
||||
@code{(*targetm.asm_out.internal_label)}; the fourth argument is the
|
||||
jump-table which follows (a @code{jump_insn} containing an
|
||||
jump-table which follows (a @code{jump_table_data} containing an
|
||||
@code{addr_vec} or @code{addr_diff_vec}).
|
||||
|
||||
This feature is used on system V to output a @code{swbeg} statement
|
||||
|
|
|
@ -8673,7 +8673,7 @@ fprintf (@var{stream}, "\t.word L%d\n", @var{value})
|
|||
Define this if the label before a jump-table needs to be output
|
||||
specially. The first three arguments are the same as for
|
||||
@code{(*targetm.asm_out.internal_label)}; the fourth argument is the
|
||||
jump-table which follows (a @code{jump_insn} containing an
|
||||
jump-table which follows (a @code{jump_table_data} containing an
|
||||
@code{addr_vec} or @code{addr_diff_vec}).
|
||||
|
||||
This feature is used on system V to output a @code{swbeg} statement
|
||||
|
|
Loading…
Add table
Reference in a new issue