From da5c6bdecf7ee060fc516e5741155301044a1118 Mon Sep 17 00:00:00 2001 From: Steven Bosscher Date: Sat, 30 Mar 2013 14:54:34 +0000 Subject: [PATCH] md.texi (Standard Names): Update documentation for JUMP_TABLE_DATA changes. * doc/md.texi (Standard Names) : Update documentation for JUMP_TABLE_DATA changes. * doc/tm.texi.in (Dispatch Tables) : Likewise. * doc/rtl.texi (Flags) : Likewise. (Insns) : New entry. * doc/tm.texi: Regenerate. From-SVN: r197267 --- gcc/ChangeLog | 7 +++++++ gcc/doc/md.texi | 2 +- gcc/doc/rtl.texi | 24 +++++++++++++++++++----- gcc/doc/tm.texi | 2 +- gcc/doc/tm.texi.in | 2 +- 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4f7111ab23..ab4dd37e0b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2013-03-30 Steven Bosscher + * doc/md.texi (Standard Names) : Update documentation for + JUMP_TABLE_DATA changes. + * doc/tm.texi.in (Dispatch Tables) : Likewise. + * doc/rtl.texi (Flags) : Likewise. + (Insns) : 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 diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 6729eb691fd..f5dd5478338 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -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 diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index d82c72c723e..a9890f88ee7 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -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 diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 9f78ae4a46a..6395b4b9e71 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -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 diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index b67df84041e..91a756c592e 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -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 -- 2.30.2