diff options
author | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-15 06:05:44 +0000 |
---|---|---|
committer | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-04-15 06:05:44 +0000 |
commit | c36aa54b39d1e97ac912dcbef8550750bb2dc760 (patch) | |
tree | ef0b3b5fe19860d399f60a0610fc54c9edee6d90 /gcc/function.h | |
parent | 7502b19d938bde2fcfc9d5976e82003349dce04f (diff) | |
download | gcc-c36aa54b39d1e97ac912dcbef8550750bb2dc760.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222112 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r-- | gcc/function.h | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/gcc/function.h b/gcc/function.h index b89c5aeefb6..363d666d52f 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]) |