summaryrefslogtreecommitdiff
path: root/gcc/target-globals.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-12 18:55:48 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-12 18:55:48 +0000
commitd0f03375468f173a33fe2f655e260c0ff6209e25 (patch)
tree3386f4b0b387575b31aa4559e02d101b1270353f /gcc/target-globals.c
parent63027472f4239a38a77c77cd487c4ee9b1033c09 (diff)
downloadgcc-d0f03375468f173a33fe2f655e260c0ff6209e25.tar.gz
gcc/
* Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H). (target-globals.o): Depend on $(LIBFUNCS_H). * libfuncs.h: Include hashtab.h. (libfunc_entry): Moved from optabs.c. (target_libfuncs): New structure. (default_target_libfuncs): Declare. (this_target_libfuncs): Declare as a variable or define as a macro. (libfunc_table): Redefine as a macro. * optabs.c (default_target_libfuncs): New variable. (this_target_libfuncs): New conditional variable. (libfunc_table): Delete. (libfunc_entry): Moved to optabs.h. (libfunc_hash): Redefine as a macro. (hash_libfunc, eq_libfunc): Fix comments. (init_optabs): Use libfunc_hash to detect cases where the function has already been called. Clear the hash table instead of recreating it. * target-globals.h (this_target_libfuncs): Declare. (target_globals): Add a libfuncs field. (restore_target_globals): Copy the libfuncs field to this_target_libfuncs. * target-globals.c: Include libfuncs.h. (default_target_globals): Initialize the libfuncs field. (save_target_globals): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162099 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target-globals.c')
-rw-r--r--gcc/target-globals.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/target-globals.c b/gcc/target-globals.c
index cfabb87c909..6655f9a5fe0 100644
--- a/gcc/target-globals.c
+++ b/gcc/target-globals.c
@@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
#include "expmed.h"
#include "expr.h"
#include "optabs.h"
+#include "libfuncs.h"
#if SWITCHABLE_TARGET
struct target_globals default_target_globals = {
@@ -43,7 +44,8 @@ struct target_globals default_target_globals = {
&default_target_hard_regs,
&default_target_reload,
&default_target_expmed,
- &default_target_optabs
+ &default_target_optabs,
+ &default_target_libfuncs
};
struct target_globals *
@@ -59,6 +61,7 @@ save_target_globals (void)
g->reload = XCNEW (struct target_reload);
g->expmed = XCNEW (struct target_expmed);
g->optabs = XCNEW (struct target_optabs);
+ g->libfuncs = ggc_alloc_cleared_target_libfuncs ();
restore_target_globals (g);
target_reinit ();
return g;