Provided by: asis-programs_2019-5_amd64 bug

NAME

       gnatelim - eliminate dead code from Ada programs

SYNOPSIS

       gnatelim [OPTION]... name

DESCRIPTION

       When  you  are  working  with a program which shares some set of Ada packages with other programs, it may
       happen, that your program uses only a part of subprogram defined in  these  packages,  whereas  the  code
       created for unused subprograms increases the size of the executable your program.

       gnatelim  is  a  utility  tracking unused subprograms in an Ada program. Its output consists of a list of
       Eliminate pragmas marking all the subprograms that are declared, but never called  in  a  given  program.
       Eliminate  is a GNAT-specific pragma. By ecompiling your program with these pragmas, you may decrease the
       size of its executable, because the compiler will not create the code for unused subprograms.

       gnatelim is an ASIS application developed on top of the ASIS implementation for GNAT. It needs a  set  of
       tree  files  representing a program to analyze and the bind file for its main subprogram to be created in
       the current directory. For the current version, it  is  a  the  user's  responsibility  to  maintain  the
       consistency  of  the set of tree files processed by gnatelim, if the user also changes the sources of the
       Ada program to be processed.

       To produce a list of Eliminate pragmas, gnatelim has to do an extensive analysis and  it  may  take  some
       time. For example, to process itself, gnatelim takes 4 minutes of CPU time on a Pentium 200.

OPTIONS

       -v     verbose mode: gnatelim version information is printed (in the form of Ada comments) in stdout; the
              names of the files being processed are printed to standard-error.

       -vf    Same  as -v, but in addition various debugging information and information reflecting some details
              of the analysis done by gnatelim are printed to standard-error.

       -a     Process RTL components: by default, gnatelim does not analyze the units which are  the  components
              of  the  GNAT  Run-Time  Library (RTL), and it does not generate Eliminate pragmas for subprograms
              declared in the RTL.  If '-a' option is set, RTL components are also analyzed (except some  units,
              which contains subprograms implicitly called by the compiler).

       -m     Check  missed units: if this option is set, gnatelim checks that all the units which (according to
              the bind file) has to be analyzed by gnatelim are really represented by  the  set  of  tree  files
              processed  by  gnatelim  (depending on whether or not '-a' option is set). By default (that is, if
              '-m' option is not set), gnatelim analyzes a set of units represented by a given set of tree files
              "as is" (excluding library packages which require bodies, but for which bodies are not available).

SEE ALSO

       gnat(1), asistant(1), gnat2xml(1), gnatcheck(1), gnatmetric(1), gnatpp(1), gnatstub(1), gnattest(1)

       Documentation about the ASIS tools may be found in /usr/share/doc/asis-doc/ if the  asis-doc  package  is
       installed.   The reference documentation about ASIS is excluded due to license problems, but may be found
       in various formats at http://libre.adacore.com/developers/documentation.

Debian GNU/Linux                                   2014-08-09                                        GNATELIM(1)