1  /* LTO partitioning logic routines.
       2     Copyright (C) 2009-2023 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  
      21  /* Structure describing ltrans partitions.  */
      22  
      23  struct ltrans_partition_def
      24  {
      25    lto_symtab_encoder_t encoder;
      26    const char * name;
      27    int insns;
      28    int symbols;
      29    hash_set<symtab_node *> *initializers_visited;
      30  };
      31  
      32  typedef struct ltrans_partition_def *ltrans_partition;
      33  
      34  extern vec<ltrans_partition> ltrans_partitions;
      35  
      36  void lto_1_to_1_map (void);
      37  void lto_max_map (void);
      38  void lto_balanced_map (int, int);
      39  void lto_promote_cross_file_statics (void);
      40  void free_ltrans_partitions (void);
      41  void lto_promote_statics_nonwpa (void);