summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-17 22:46:22 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-17 22:46:22 +0000
commit7a5749cc5ecec8d3b41689bc1e5d6086a8f2d5da (patch)
treec5ae8480d92cfb9bbf49e92a25cde20346423a8b
parentadf9e2e60bd5d73d15450f4d91658f8d9c7b1da6 (diff)
downloadgcc-7a5749cc5ecec8d3b41689bc1e5d6086a8f2d5da.tar.gz
* expr.c (init_expr_once): Don't use start/end_sequence.
Use rtx_alloc instead of emit_insn. * toplev.c (lang_dependent_init): Run init_expr_once here ... (lang_independent_init): ... not here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53572 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/expr.c9
-rw-r--r--gcc/toplev.c2
3 files changed, 11 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a104bad8afc..58d851bd092 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-05-17 Richard Henderson <rth@redhat.com>
+
+ * expr.c (init_expr_once): Don't use start/end_sequence.
+ Use rtx_alloc instead of emit_insn.
+ * toplev.c (lang_dependent_init): Run init_expr_once here ...
+ (lang_independent_init): ... not here.
+
2002-05-17 Jason Thorpe <thorpej@wasabisystems.com>
* config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
diff --git a/gcc/expr.c b/gcc/expr.c
index 0b741c65d03..bc0b225704b 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -214,16 +214,15 @@ init_expr_once ()
int num_clobbers;
rtx mem, mem1;
- start_sequence ();
-
/* Try indexing by frame ptr and try by stack ptr.
It is known that on the Convex the stack ptr isn't a valid index.
With luck, one or the other is valid on any machine. */
mem = gen_rtx_MEM (VOIDmode, stack_pointer_rtx);
mem1 = gen_rtx_MEM (VOIDmode, frame_pointer_rtx);
- insn = emit_insn (gen_rtx_SET (0, NULL_RTX, NULL_RTX));
- pat = PATTERN (insn);
+ insn = rtx_alloc (INSN);
+ pat = gen_rtx_SET (0, NULL_RTX, NULL_RTX);
+ PATTERN (insn) = pat;
for (mode = VOIDmode; (int) mode < NUM_MACHINE_MODES;
mode = (enum machine_mode) ((int) mode + 1))
@@ -291,8 +290,6 @@ init_expr_once ()
float_extend_from_mem[mode][srcmode] = true;
}
}
-
- end_sequence ();
}
/* This is run at the start of compiling a function. */
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 9fb8813191a..83cdc5799b1 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -5020,7 +5020,6 @@ lang_independent_init ()
provide a dummy function context for them. */
init_dummy_function_start ();
init_expmed ();
- init_expr_once ();
if (flag_caller_saves)
init_caller_save ();
expand_dummy_function_end ();
@@ -5051,6 +5050,7 @@ lang_dependent_init (name)
front end is initialized. */
init_eh ();
init_optabs ();
+ init_expr_once ();
/* Put an entry on the input file stack for the main input file. */
push_srcloc (input_filename, 0);