diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2010-07-12 19:04:21 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2010-07-12 19:04:21 +0000 |
commit | 77f558794e5ab9a012c7231c799603ba73cc41cd (patch) | |
tree | d585bd9a727662ed7182cfeb363f23fa1011da6b | |
parent | 76ee381a9c92e5ef9448ff24aa6c82703c2561c8 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/reginfo.c | 6 | ||||
-rw-r--r-- | gcc/target-globals.c | 1 |
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; } |