aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2007-06-07 16:46:26 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2007-06-07 16:46:26 +0000
commitbb27eeda7dc859c9d1c9a69baea30f9cf273ec4a (patch)
tree1cb00a95176daf42e5091f63e76b07ed28ef06df /gcc/emit-rtl.c
parent1b0cfaa6a890d6cea3ce6a98a707219cac2aedd6 (diff)
downloadgcc-bb27eeda7dc859c9d1c9a69baea30f9cf273ec4a.zip
gcc-bb27eeda7dc859c9d1c9a69baea30f9cf273ec4a.tar.gz
gcc-bb27eeda7dc859c9d1c9a69baea30f9cf273ec4a.tar.bz2
re PR target/31850 (gcc.c-torture/compile/limits-fnargs.c is slow at compiling for spu-elf)
PR target/31850 * rtl.h (push_to_sequence2): New. * emit-rtl.c (push_to_sequence2): New. * function.c (assign_parm_data_all): Add new fields. (assign_parm_setup_block): Call push_to_sequence2 instead of push_to_sequence. (assign_parm_setup_reg): Ditto. (assign_parm_setup_stack): Ditto. (assign_parms_unsplit_complex): Ditto. (assign_parms): Change field name. From-SVN: r125532
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 17f8c2d..f5cea9a 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -4632,6 +4632,18 @@ push_to_sequence (rtx first)
last_insn = last;
}
+/* Like push_to_sequence, but take the last insn as an argument to avoid
+ looping through the list. */
+
+void
+push_to_sequence2 (rtx first, rtx last)
+{
+ start_sequence ();
+
+ first_insn = first;
+ last_insn = last;
+}
+
/* Set up the outer-level insn chain
as the current sequence, saving the previously current one. */