umerge man page on IRIX

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



UMERGE(1-SysV)							UMERGE(1-SysV)

NAME
     umerge - Ucode Inliner

SYNOPSIS
     umerge input_file -o inlined_file [ -t sym_file -i control_file
     -space_time value -inline_to value ] [ -v -noinline -inline_all
     -no_init_to_ass -no_promotion ]

DESCRIPTION
     umerge, the ucode inliner, reads the input binary ucode file into an
     input ucode buffer.  An output ucode buffer is then allocated.  umerge
     then makes a pass over the input ucode buffer to collect information and
     build data structures, including the program call graph.  This pass also
     copies all top-level non-procedure ucode to the output buffer.  It then
     analyzes the data structures to decide what to do for the output ucode.
     Finally, it copies the code from the input buffer to the output buffer
     according to a depth-first, post-order traversal of the program call
     graph.  In this process, procedure bodies are conditionally integrated at
     their points of calls.  When inlining procedures, the procedure code is
     taken from the output buffer.  This allows the output of integrating
     procedure A into B to be used when procedure B is later integrated into
     procedure C.

     Apart from the above basic functions, umerge also does additional
     optimizations that naturally belong to it.	 For FORTRAN programs, it
     promotes reference parameters to value parameters whenever this can
     safely be performed.  When the actual parameter is a constant, it fetches
     the constant value from the INIT ucode and passes the constants directly.
     When the actual parameter is an initialized variable that is never
     written in the whole program, it also looks up the initialized value and
     passes the constant value directly.

     umerge also recognizes initialized variables that are never written into
     and converts the initializations to run-time assignments at the beginning
     of the procedures.	 This allows the later global optimizer to perform
     constant propagation, constant folding and dead store elimination to
     further improve the code.

     The following options are interpreted by umerge.

     -v	     Turns on verbose mode.  In this mode, umerge will print the name
	     of the procedure it is currently copying to the output buffer.
	     It also prints the name of the procedure it is inlining at each
	     call site.

     -noinline
	     Suppresses the inlining functionality.  All other optimizations
	     are still performed.

     -inline_all
	     Inline all calls in the program.  This option should only be used
	     with discretion, since it can create tremendous optimization

									Page 1

UMERGE(1-SysV)							UMERGE(1-SysV)

	     overhead in the later optimization phases.

     -no_init_to_ass
	     Turns off umerge's initialization to run-time assignment
	     conversion.

     -no_promotion
	     Turns off reference parameter to value parameter promotion.

     -t sym_file
	     Tells umerge the name of the symbol table file.  This is
	     necessary for umerge to know the names of all the procedures.

     -i control_file
	     Gives direct control over umerge on the inlining of specific
	     procedures.  The control file must be made up of lines that start
	     with a "+" or a "-" in the first column, followed by a procedure
	     name.  The procedures can be listed in arbitrary order in the
	     file.  Procedures marked with "+" are always inlined, and those
	     marked with "-" are never inlined.

     -space_time value
	     Uses the given value for this parameter.  umerge's inlining
	     decision is based on this parameter that represents space/time
	     tradeoff.	The default value is 3.0.  This tells umerge that a
	     size increase of 3 instructions is worthy of each cycle reduction
	     in execution time.	 In other words, umerge will inline a
	     procedure whenever the inlining causes 3 or less additional
	     instructions in code size for every 1 cycle speedup in execution
	     time.  The value specified in this option does not need to be a
	     whole number.

     -inline_to value
	     The default value of this parameter is 0. A positive value of
	     this parameter asks umerge to perform additional inlining of
	     calls to leaf routines up to the specified level, in addition to
	     its automatic decision mechanism. A value of 1 will cause all
	     calls to leaf procedures to be inlined.  A value of 2 will
	     additionally cause all calls to procedures that became leaves due
	     to level 1 inlining to be inlined, etc.  Under this option, a
	     procedure will become a leaf in the inlined output code if and
	     only if the procedure's maximum distance from a leaf in the call
	     graph is less than or equal to the value of this parameter.  This
	     option is not affected by the -noinline option.

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

DIAGNOSTICS
     umerge assumes the input ucode file is error-free.	 Otherwise, there is
     no guarantee on its behavior.

									Page 2

[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