/* Target-dependent globals. Copyright (C) 2010 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ #include "config.h" #include "system.h" #include "coretypes.h" #include "tm.h" #include "insn-config.h" #include "machmode.h" #include "ggc.h" #include "toplev.h" #include "target-globals.h" #include "flags.h" #include "regs.h" #include "rtl.h" #include "hard-reg-set.h" #include "reload.h" #include "expmed.h" #include "expr.h" #include "optabs.h" #include "libfuncs.h" #include "cfgloop.h" #include "ira-int.h" #include "builtins.h" #include "gcse.h" #include "bb-reorder.h" #if SWITCHABLE_TARGET struct target_globals default_target_globals = { &default_target_flag_state, &default_target_regs, &default_target_rtl, &default_target_hard_regs, &default_target_reload, &default_target_expmed, &default_target_optabs, &default_target_libfuncs, &default_target_cfgloop, &default_target_ira, &default_target_ira_int, &default_target_builtins, &default_target_gcse, &default_target_bb_reorder }; struct target_globals * save_target_globals (void) { struct target_globals *g; g = ggc_alloc_target_globals (); g->flag_state = XCNEW (struct target_flag_state); g->regs = XCNEW (struct target_regs); g->rtl = ggc_alloc_cleared_target_rtl (); g->hard_regs = XCNEW (struct target_hard_regs); 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 (); g->cfgloop = XCNEW (struct target_cfgloop); g->ira = XCNEW (struct target_ira); g->ira_int = XCNEW (struct target_ira_int); g->builtins = XCNEW (struct target_builtins); 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; } #endif