aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2015-04-15 15:35:44 +0930
committerAlan Modra <amodra@gcc.gnu.org>2015-04-15 15:35:44 +0930
commit614d5bd88def9761bdfce33815f5e83cc801dab0 (patch)
treeef0b3b5fe19860d399f60a0610fc54c9edee6d90 /gcc/function.h
parent241cbc7a5f4b39f57c350e8fc32d3a43999ba63b (diff)
downloadgcc-614d5bd88def9761bdfce33815f5e83cc801dab0.zip
gcc-614d5bd88def9761bdfce33815f5e83cc801dab0.tar.gz
gcc-614d5bd88def9761bdfce33815f5e83cc801dab0.tar.bz2
function.h (struct emit_status): Delete x_first_insn, x_last_insn and sequence_stack.
* function.h (struct emit_status): Delete x_first_insn, x_last_insn and sequence_stack. Add seq. (seq_stack): Delete. * function.c (prepare_function_start): Don't access x_last_insn. * emit-rtl.h (get_current_sequence, get_topmost_sequence): New. (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them. * emit_rtl.c (start_sequence, push_topmost_sequence, pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use sequence accessors. (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb, remove_insn): Likewise. Simplify. * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence and pop_topmost_sequence. (m32c_function_needs_enter): Use get_topmost_sequence. Ignore debug insns. * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence. From-SVN: r222112
Diffstat (limited to 'gcc/function.h')
-rw-r--r--gcc/function.h21
1 files changed, 9 insertions, 12 deletions
diff --git a/gcc/function.h b/gcc/function.h
index b89c5ae..363d666 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -41,19 +41,17 @@ struct GTY(()) emit_status {
/* Lowest label number in current function. */
int x_first_label_num;
- /* The ends of the doubly-linked chain of rtl for the current function.
- Both are reset to null at the start of rtl generation for the function.
+ /* seq.first and seq.last are the ends of the doubly-linked chain of
+ rtl for the current function. Both are reset to null at the
+ start of rtl generation for the function.
- start_sequence saves both of these on `sequence_stack' and then starts
- a new, nested sequence of insns. */
- rtx_insn *x_first_insn;
- rtx_insn *x_last_insn;
+ start_sequence saves both of these on seq.next and then starts
+ a new, nested sequence of insns.
- /* Stack of pending (incomplete) sequences saved by `start_sequence'.
- Each element describes one pending sequence.
- The main insn-chain is saved in the last element of the chain,
- unless the chain is empty. */
- struct sequence_stack *sequence_stack;
+ seq.next is a stack of pending (incomplete) sequences saved by
+ start_sequence. Each element describes one pending sequence.
+ The main insn-chain is the last element of the chain. */
+ struct sequence_stack seq;
/* INSN_UID for next insn emitted.
Reset to 1 for each function compiled. */
@@ -88,7 +86,6 @@ extern GTY ((length ("crtl->emit.x_reg_rtx_no"))) rtx * regno_reg_rtx;
/* For backward compatibility... eventually these should all go away. */
#define reg_rtx_no (crtl->emit.x_reg_rtx_no)
-#define seq_stack (crtl->emit.sequence_stack)
#define REGNO_POINTER_ALIGN(REGNO) (crtl->emit.regno_pointer_align[REGNO])