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.