LCOV - code coverage report
Current view: top level - gcc - target-globals.h (source / functions) Coverage Total Hit
Test: gcc.info Lines: 100.0 % 20 20
Test Date: 2026-02-28 14:20:25 Functions: 100.0 % 1 1
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* Target-dependent globals.
       2              :    Copyright (C) 2010-2026 Free Software Foundation, Inc.
       3              : 
       4              : This file is part of GCC.
       5              : 
       6              : GCC is free software; you can redistribute it and/or modify it under
       7              : the terms of the GNU General Public License as published by the Free
       8              : Software Foundation; either version 3, or (at your option) any later
       9              : version.
      10              : 
      11              : GCC is distributed in the hope that it will be useful, but WITHOUT ANY
      12              : WARRANTY; without even the implied warranty of MERCHANTABILITY or
      13              : FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      14              : for more details.
      15              : 
      16              : You should have received a copy of the GNU General Public License
      17              : along with GCC; see the file COPYING3.  If not see
      18              : <http://www.gnu.org/licenses/>.  */
      19              : 
      20              : #ifndef TARGET_GLOBALS_H
      21              : #define TARGET_GLOBALS_H 1
      22              : 
      23              : #if SWITCHABLE_TARGET
      24              : extern class target_flag_state *this_target_flag_state;
      25              : extern struct target_regs *this_target_regs;
      26              : extern struct target_rtl *this_target_rtl;
      27              : extern struct target_recog *this_target_recog;
      28              : extern struct target_hard_regs *this_target_hard_regs;
      29              : extern struct target_function_abi_info *this_target_function_abi_info;
      30              : extern struct target_reload *this_target_reload;
      31              : extern struct target_expmed *this_target_expmed;
      32              : extern struct target_optabs *this_target_optabs;
      33              : extern struct target_libfuncs *this_target_libfuncs;
      34              : extern struct target_cfgloop *this_target_cfgloop;
      35              : extern struct target_ira *this_target_ira;
      36              : extern class target_ira_int *this_target_ira_int;
      37              : extern struct target_builtins *this_target_builtins;
      38              : extern struct target_gcse *this_target_gcse;
      39              : extern struct target_bb_reorder *this_target_bb_reorder;
      40              : extern struct target_lower_subreg *this_target_lower_subreg;
      41              : extern struct target_constraints *this_target_constraints;
      42              : #endif
      43              : 
      44              : class GTY(()) target_globals {
      45              : public:
      46              :   ~target_globals ();
      47              : 
      48              :   class target_flag_state *GTY((skip)) flag_state;
      49              :   struct target_regs *GTY((skip)) regs;
      50              :   struct target_rtl *rtl;
      51              :   struct target_recog *GTY((skip)) recog;
      52              :   struct target_hard_regs *GTY((skip)) hard_regs;
      53              :   struct target_function_abi_info *GTY((skip)) function_abi_info;
      54              :   struct target_reload *GTY((skip)) reload;
      55              :   struct target_expmed *GTY((skip)) expmed;
      56              :   struct target_optabs *GTY((skip)) optabs;
      57              :   struct target_libfuncs *libfuncs;
      58              :   struct target_cfgloop *GTY((skip)) cfgloop;
      59              :   struct target_ira *GTY((skip)) ira;
      60              :   class target_ira_int *GTY((skip)) ira_int;
      61              :   struct target_builtins *GTY((skip)) builtins;
      62              :   struct target_gcse *GTY((skip)) gcse;
      63              :   struct target_bb_reorder *GTY((skip)) bb_reorder;
      64              :   struct target_lower_subreg *GTY((skip)) lower_subreg;
      65              :   struct target_constraints *GTY((skip)) constraints;
      66              : };
      67              : 
      68              : #if SWITCHABLE_TARGET
      69              : extern class target_globals default_target_globals;
      70              : 
      71              : extern class target_globals *save_target_globals (void);
      72              : extern class target_globals *save_target_globals_default_opts (void);
      73              : 
      74              : inline void
      75      3545825 : restore_target_globals (class target_globals *g)
      76              : {
      77      3545825 :   this_target_flag_state = g->flag_state;
      78      3545825 :   this_target_regs = g->regs;
      79      3545825 :   this_target_rtl = g->rtl;
      80      3545825 :   this_target_recog = g->recog;
      81      3545825 :   this_target_hard_regs = g->hard_regs;
      82      3545825 :   this_target_function_abi_info = g->function_abi_info;
      83      3545825 :   this_target_reload = g->reload;
      84      3545825 :   this_target_expmed = g->expmed;
      85      3545825 :   this_target_optabs = g->optabs;
      86      3545825 :   this_target_libfuncs = g->libfuncs;
      87      3545825 :   this_target_cfgloop = g->cfgloop;
      88      3545825 :   this_target_ira = g->ira;
      89      3545825 :   this_target_ira_int = g->ira_int;
      90      3545825 :   this_target_builtins = g->builtins;
      91      3545825 :   this_target_gcse = g->gcse;
      92      3545825 :   this_target_bb_reorder = g->bb_reorder;
      93      3545825 :   this_target_lower_subreg = g->lower_subreg;
      94      3545825 :   this_target_constraints = g->constraints;
      95      3545825 : }
      96              : #endif
      97              : 
      98              : #endif
        

Generated by: LCOV version 2.4-beta

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.