File : alloc.ads


   1 ------------------------------------------------------------------------------
   2 --                                                                          --
   3 --                         GNAT COMPILER COMPONENTS                         --
   4 --                                                                          --
   5 --                                A L L O C                                 --
   6 --                                                                          --
   7 --                                 S p e c                                  --
   8 --                                                                          --
   9 --          Copyright (C) 1992-2016, Free Software Foundation, Inc.         --
  10 --                                                                          --
  11 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  12 -- terms of the  GNU General Public License as published  by the Free Soft- --
  13 -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
  14 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  15 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  16 -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
  17 --                                                                          --
  18 --                                                                          --
  19 --                                                                          --
  20 --                                                                          --
  21 --                                                                          --
  22 -- You should have received a copy of the GNU General Public License and    --
  23 -- a copy of the GCC Runtime Library Exception along with this program;     --
  24 -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
  25 -- <http://www.gnu.org/licenses/>.                                          --
  26 --                                                                          --
  27 -- GNAT was originally developed  by the GNAT team at  New York University. --
  28 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  29 --                                                                          --
  30 ------------------------------------------------------------------------------
  31 
  32 --  This package contains definitions for initial sizes and growth increments
  33 --  for the various dynamic arrays used for the main compiler data structures.
  34 --  The indicated initial size is allocated for the start of each file, and
  35 --  the increment factor is a percentage used to increase the table size when
  36 --  it needs expanding (e.g. a value of 100 = 100% increase = double)
  37 
  38 --  Note: the initial values here are multiplied by Table_Factor as set by the
  39 --  -gnatTnn switch. This variable is defined in Opt, as is the default value
  40 --  for the table factor.
  41 
  42 package Alloc is
  43 
  44    --  The comment shows the unit in which the table is defined
  45 
  46    All_Interp_Initial               : constant := 1_000;   -- Sem_Type
  47    All_Interp_Increment             : constant := 100;
  48 
  49    Branches_Initial                 : constant := 1_000;   -- Sem_Warn
  50    Branches_Increment               : constant := 100;
  51 
  52    Conditionals_Initial             : constant := 1_000;   -- Sem_Warn
  53    Conditionals_Increment           : constant := 100;
  54 
  55    Conditional_Stack_Initial        : constant := 50;      -- Sem_Warn
  56    Conditional_Stack_Increment      : constant := 100;
  57 
  58    Elists_Initial                   : constant := 200;     -- Elists
  59    Elists_Increment                 : constant := 100;
  60 
  61    Elmts_Initial                    : constant := 1_200;   -- Elists
  62    Elmts_Increment                  : constant := 100;
  63 
  64    File_Name_Chars_Initial          : constant := 10_000;  -- Osint
  65    File_Name_Chars_Increment        : constant := 100;
  66 
  67    In_Out_Warnings_Initial          : constant := 100;     -- Sem_Warn
  68    In_Out_Warnings_Increment        : constant := 100;
  69 
  70    Ignored_Ghost_Units_Initial      : constant := 20;      -- Sem_Util
  71    Ignored_Ghost_Units_Increment    : constant := 50;
  72 
  73    Inlined_Initial                  : constant := 100;     -- Inline
  74    Inlined_Increment                : constant := 100;
  75 
  76    Inlined_Bodies_Initial           : constant := 50;      -- Inline
  77    Inlined_Bodies_Increment         : constant := 200;
  78 
  79    Interp_Map_Initial               : constant := 200;     -- Sem_Type
  80    Interp_Map_Increment             : constant := 100;
  81 
  82    Lines_Initial                    : constant := 500;     -- Sinput
  83    Lines_Increment                  : constant := 150;
  84 
  85    Linker_Option_Lines_Initial      : constant := 5;       -- Lib
  86    Linker_Option_Lines_Increment    : constant := 200;
  87 
  88    Lists_Initial                    : constant := 4_000;   -- Nlists
  89    Lists_Increment                  : constant := 200;
  90 
  91    Load_Stack_Initial               : constant := 10;      -- Lib
  92    Load_Stack_Increment             : constant := 100;
  93 
  94    Name_Chars_Initial               : constant := 50_000;  -- Namet
  95    Name_Chars_Increment             : constant := 100;
  96 
  97    Name_Qualify_Units_Initial       : constant := 200;     -- Exp_Dbug
  98    Name_Qualify_Units_Increment     : constant := 300;
  99 
 100    Names_Initial                    : constant := 6_000;   -- Namet
 101    Names_Increment                  : constant := 100;
 102 
 103    Nodes_Initial                    : constant := 50_000;  -- Atree
 104    Nodes_Increment                  : constant := 100;
 105 
 106    Notes_Initial                    : constant := 100;     -- Lib
 107    Notes_Increment                  : constant := 200;
 108 
 109    Obsolescent_Warnings_Initial     : constant := 50;      -- Sem_Prag
 110    Obsolescent_Warnings_Increment   : constant := 200;
 111 
 112    Orig_Nodes_Initial               : constant := 50_000;  -- Atree
 113    Orig_Nodes_Increment             : constant := 100;
 114 
 115    Pending_Instantiations_Initial   : constant := 10;      -- Inline
 116    Pending_Instantiations_Increment : constant := 100;
 117 
 118    Rep_Table_Initial                : constant := 1000;    -- Repinfo
 119    Rep_Table_Increment              : constant := 200;
 120 
 121    Scope_Stack_Initial              : constant := 10;      -- Sem
 122    Scope_Stack_Increment            : constant := 200;
 123 
 124    SFN_Table_Initial                : constant := 10;      -- Fname
 125    SFN_Table_Increment              : constant := 200;
 126 
 127    Source_File_Initial              : constant := 10;      -- Sinput
 128    Source_File_Increment            : constant := 200;
 129 
 130    String_Chars_Initial             : constant := 2_500;   -- Stringt
 131    String_Chars_Increment           : constant := 150;
 132 
 133    Strings_Initial                  : constant := 5_00;    -- Stringt
 134    Strings_Increment                : constant := 150;
 135 
 136    Successors_Initial               : constant := 2_00;    -- Inline
 137    Successors_Increment             : constant := 100;
 138 
 139    Udigits_Initial                  : constant := 10_000;  -- Uintp
 140    Udigits_Increment                : constant := 100;
 141 
 142    Uints_Initial                    : constant := 5_000;   -- Uintp
 143    Uints_Increment                  : constant := 100;
 144 
 145    Units_Initial                    : constant := 30;      -- Lib
 146    Units_Increment                  : constant := 100;
 147 
 148    Ureals_Initial                   : constant := 200;     -- Urealp
 149    Ureals_Increment                 : constant := 100;
 150 
 151    Unreferenced_Entities_Initial    : constant := 1_000;   -- Sem_Warn
 152    Unreferenced_Entities_Increment  : constant := 100;
 153 
 154    Warnings_Off_Pragmas_Initial     : constant := 500;     -- Sem_Warn
 155    Warnings_Off_Pragmas_Increment   : constant := 100;
 156 
 157    With_List_Initial                : constant := 10;      -- Features
 158    With_List_Increment              : constant := 300;
 159 
 160    Xrefs_Initial                    : constant := 5_000;   -- Cross-refs
 161    Xrefs_Increment                  : constant := 300;
 162 
 163    Drefs_Initial                    : constant := 5;       -- Dereferences
 164    Drefs_Increment                  : constant := 1_000;
 165 
 166 end Alloc;