Man Linux: Main Page and Category List

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).

AUTHOR

       ASIS-for-GNAT was originally developed  by the  ASIS-for-GNAT  team  at
       the   Software    Engineering    Laboratory   of   the  Swiss   Federal
       Institute  of  Technology  (LGL-EPFL)  in  Lausanne,   Switzerland,  in
       cooperation  with the Scientific  Research  Computer  Center of  Moscow
       State University (SRCC MSU), Russia,  with funding  partially  provided
       by grants from the Swiss National  Science  Foundation  and  the  Swiss
       Academy  of  Engineering Sciences.  ASIS-for-GNAT is now maintained  by
       Ada Core Technologies Inc (http://www.gnat.com).

       This  manual  page  was  written  by  Ludovic  Brenta <ludovic@ludovic-
       brenta.org> for the Debian project.

COPYRIGHT

       Copyright (c) 1995-1997, Free Software Foundation, Inc.

SEE ALSO

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

       The   full   documentation   for   gnatelim   in   /usr/share/doc/asis-
       programs/README.gnatelim

       info asis_ug ASIS-for-GNAT User’s Guide

       info asis_rm ASIS-for-GNAT Reference Manual