uopt man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



UOPT(1)								       UOPT(1)

NAME
     uopt - MIPS Ucode Global Optimizer

SYNOPSIS
     uopt unopt_file opt_file [ string_file ] [ -t sym_file -i ignore_file -l
     list_file -Olimit count -loopunroll count ] [ -v -w -bb -O3 -EL -EB
     -doassoc -f77alias -pic2 -nokpicopt -kpicopt -no_r23 -nomultibbunroll
     -zdbug:n ]

DESCRIPTION
     uopt, the MIPS ucode optimizer, reads the input binary ucode file,
     performs optimization on an intra-procedural, global basis and outputs
     the optimized binary ucode file.  It checks the version stamp of the
     ucode file, and if it does not correspond to its own stamp, a warning
     message will be printed.  By convention, unoptimized binary ucode files
     have the extension .B and optimized binary ucode files have the extension
     .O, but uopt does not force this convention on the user.  The string file
     is used for storing string and floating-point constants in each procedure
     during optimization, to save memory space.	 If this file name is omitted,
     the file name "uoptstring" is used.  uopt first conducts a quick pre-pass
     over the entire program. In the main optimization pass, it reads,
     optimizes and writes out the procedures one by one in same the order that
     they appear in the input file.

     The complexity of global optimization is some exponential function of the
     size of the procedure (in number of basic blocks).	 Thus, large
     procedures take enormous amount of time to optimize.  Also, if the host
     machine has only a small amount of memory, excessive swapping of memory
     pages between disk physical memory further lengthens the optimization
     time for large procedures.	 uopt will skip optimizing a procedure if the
     number of basic blocks it contains exceeds 500.  A warning message if
     given so that the user is aware that the procedure is not optimized. The
     default value of 500 can be overridden using the -Olimit option.

     The following options are interpreted by uopt.

     -v	     Turns on verbose mode.  In this mode, uopt will print the name of
	     the procedure it's currently optimizing, plus a number enclosed
	     in parentheses that tells the number of basic blocks in that
	     procedure.	 Optimization time is usually some exponential
	     function of the number of basic blocks in the procedure.  Under
	     -O3 optimization, an "i" after the number indicates that inter-
	     procedural register allocation is performed for that procedure.

     -w	     Suppresses warning messages.

     -bb     Write out the basic block number as ucode comments in the output
	     ucode.  This is useful in debugging uopt.

     -O3     Uses the inter-procedural technique when performing register
	     allocation.

									Page 1

UOPT(1)								       UOPT(1)

     -EL     Tells uopt.  that the target machine is little-endian.

     -EB     Tells uopt.  that the target machine is big-endian.

     -doassoc
	     Performs the re-association optimization for floating-point
	     expressions even when the language is FORTRAN.  This violates the
	     FORTRAN Standard.

     -f77alias
	     Assumes that there's can be aliasing among the parameters to a
	     procedure when the language is FORTRAN.  The FORTRAN Standard
	     allows the assumption by compilers that there is never any
	     aliasing among parameters. This assumption allows the compiler to
	     get better performance for the program.  If a program violates
	     this rule, the program may not run correctly after default
	     optimization; using this flag will still allow the program to run
	     correctly after optimization, only at a reduced performance
	     level.

     -pic2   Tells uopt that the program is being compiled for execution with
	     dynamic shared objects.

     -nokpicopt
	     Asks uopt not to perform the special treatment for global
	     variables to optimize their program accesses under shared
	     compilation.

     -kpicopt
	     Asks uopt to perform the special treatment for global variables
	     to optimize their program accesses regardless of the shared/non-
	     shared compilation mode.

     -no_r23 Tells uopt that it should not use register 23.

     -nomultibbunroll
	     Disables unrolling for loops containing branches.

     -zdbug:n
	     Tells uopt to print different debugging traces, depending on the
	     value of n given.	Traces are printed on a per-procedure basis,
	     and output to the list file specified in the -l option.  The
	     traces always begin with the control flow graph of the procedure.
	     For value 1, the local hash table and the global hash table are
	     printed.  For value 2, the local hash table, the global hash
	     table are printed; the bit vectors for the local attributes are
	     then printed on a per-basic-block basis.  For value 3, the global
	     hash table is printed, followed by the bit vectors for the
	     partial redundancy data flow analysis.  For value 4, the global
	     hash table is printed, followed by the bit vectors to determine
	     the live ranges of global common subexpressions.  For value 5,
	     the global hash table is printed, followed by the live range

									Page 2

UOPT(1)								       UOPT(1)

	     information for all the register-residing candidates, followed by
	     the bit vectors related to register allocation.  For value 6, a
	     trace of the global register allocation via priority-based
	     coloring is printed.  For value 7, the inter-procedural register
	     allocation information is printed.

     -t sym_file
	     Tells uopt the name of the symbol table file.

     -i ignore_file
	     Tells uopt to ignore specific procedures and leave them
	     unoptimized.  The procedures whose optimization is to be
	     suppressed are listed in arbitrary order in the given file, with
	     each line containing one procedure name starting at the first
	     column.

     -l list_file
	     Uses the given file to print diagnostic information during
	     optimization.

     -Olimit count
	     Set this parameter to the given value.  uopt will not optimize a
	     procedure whose size in terms of number of basic blocks exceeds
	     this value.

     -loopunroll count
	     Set the maximum number of times that a loop will be unrolled.
	     The default value is 4.  Setting it to 0 or 1 will disable loop
	     unrolling.

SEE ALSO
     ucode(1), btou(1), ppu(1),

DIAGNOSTICS
     uopt assumes the input ucode file is error-free.  However, it does output
     warning messages when it runs into special situations during
     optimization.

									Page 3

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net