aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2010-07-12 19:04:21 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2010-07-12 19:04:21 +0000
commit77f558794e5ab9a012c7231c799603ba73cc41cd (patch)
treed585bd9a727662ed7182cfeb363f23fa1011da6b
parent76ee381a9c92e5ef9448ff24aa6c82703c2561c8 (diff)
downloadgcc-77f558794e5ab9a012c7231c799603ba73cc41cd.zip
gcc-77f558794e5ab9a012c7231c799603ba73cc41cd.tar.gz
gcc-77f558794e5ab9a012c7231c799603ba73cc41cd.tar.bz2
reginfo.c (init_reg_sets): Don't zero globals here.
gcc/ * reginfo.c (init_reg_sets): Don't zero globals here. Update comment to say that the function can be called more than once. * target-globals.c (save_target_globals): Call init_reg_sets. From-SVN: r162110
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/reginfo.c6
-rw-r--r--gcc/target-globals.c1
3 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f8075c5..0f2a7de 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+ * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
+ to say that the function can be called more than once.
+ * target-globals.c (save_target_globals): Call init_reg_sets.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
* Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
* bb-reorder.h: New file.
* bb-reorder.c (default_target_bb_reorder): New variable.
diff --git a/gcc/reginfo.c b/gcc/reginfo.c
index deb62b7..0fc86d3 100644
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -142,8 +142,9 @@ reg_set_to_hard_reg_set (HARD_REG_SET *to, const_bitmap from)
}
}
-/* Function called only once to initialize the above data on reg usage.
- Once this is done, various switches may override. */
+/* Function called only once per target_globals to initialize the
+ target_hard_regs structure. Once this is done, various switches
+ may override. */
void
init_reg_sets (void)
{
@@ -186,7 +187,6 @@ init_reg_sets (void)
memcpy (reg_alloc_order, initial_reg_alloc_order, sizeof reg_alloc_order);
#endif
memcpy (reg_names, initial_reg_names, sizeof reg_names);
- memset (global_regs, 0, sizeof global_regs);
}
/* Initialize may_move_cost and friends for mode M. */
diff --git a/gcc/target-globals.c b/gcc/target-globals.c
index 49b9dc8..7a4058e 100644
--- a/gcc/target-globals.c
+++ b/gcc/target-globals.c
@@ -80,6 +80,7 @@ save_target_globals (void)
g->gcse = XCNEW (struct target_gcse);
g->bb_reorder = XCNEW (struct target_bb_reorder);
restore_target_globals (g);
+ init_reg_sets ();
target_reinit ();
return g;
}