FLAG DESCRIPTIONS

 SUN C, C++ AND FORTRAN

 Forte[tm] Developer 6 updates 1 and 2

 6/28/01

 -D                                Set definition for preprocessor.

 -dalign                           Assume double-type data is double
                                   aligned.
 -dn                               Specify static binding.

 -e                                Accept extended (132 character) input
                                   source lines (FORTRAN).
 -fast                             This is a convenience option for
                                   selecting a set of optimizations for
                                   performance, and it chooses:
                                   o The -native best machine
                                   characteristics option (-xarch=native,
                                   -xchip=native, -xcache=native)
                                   o Optimization level: -xO5

                                   o A set of inline expansion templates
                                   (-libmil)
                                   o The -fsimple=2 option

                                   o The -dalign option

                                   o The -xalias_level=basic option (C
                                   only)
                                   o The -xlibmopt option

                                   o The -xdepend option (FORTRAN only)

                                   o The -xprefetch option (FORTRAN only)

                                   o Options to turn off all trapping (-fns
                                   -ftrap=%none)
 -fixed                            Accept fixed-format input source files
                                   (FORTRAN).
 -fns                              Select non-standard floating point mode.

                                   This flag causes the nonstandard
                                   floating point mode to be enabled when a
                                   program begins execution. By default,
                                   the nonstandard floating point mode will
                                   not be enabled automatically.
                                   On some SPARC systems, the nonstandard
                                   floating point mode disables "gradual
                                   underflow", causing tiny results to be
                                   flushed to zero rather than producing
                                   subnormal numbers. It also causes
                                   subnormal operands to be silently
                                   replaced by zero. On those SPARC systems
                                   that do not support gradual underflow
                                   and subnormal numbers in hardware, use
                                   of this option can significantly improve
                                   the performance of some programs.
                                   Warning: When nonstandard mode is
                                   enabled, floating point arithmetic may
                                   produce results that do not con- form to
                                   the requirements of the IEEE 754
                                   standard. See the Numerical Computation
                                   Guide for more information.
 -fsimple=0                        Permits no simplifying assumptions.
                                   Preserves strict IEEE 754 conformance.
 -fsimple=1                        With -fsimple=1, the optimizer can
                                   assume the following:
                                   o The IEEE 754 default rounding/trapping
                                   modes do not change after process
                                   initialization.
                                   o Computations producing no visible
                                   result other than potential
                                   floating-point exceptions may be
                                   deleted.
                                   o Computations with Infinity or NaNs as
                                   operands need not propagate NaNs to
                                   their results. For example, x*0 may be
                                   replaced by 0.
                                   o Computations do not depend on sign of
                                   zero.
 -fsimple=2                        Permits aggressive floating point
                                   optimizations that may cause programs to
                                   produce different numeric results due to
                                   changes in rounding. Even with
                                   -fsimple=2, the optimizer still is not
                                   permitted to introduce a floating point
                                   exception in a program that otherwise
                                   produces none.
 -fsimple[=n]                      Allows the compiler to make simplifying
                                   assumptions concerning floating-point
                                   arithmetic.
 -ftrap=t                          Sets the IEEE 754 trapping mode in
                                   effect at startup.
                                   t is a comma-separated list that
                                   consists of one or more of the
                                   following: %all, %none, common,
                                   [no%]invalid, [no%]overflow,
                                   [no%]underflow, [no%]division,
                                   [no%]inexact.
                                   The default is -ftrap=%none.

                                   This option sets the IEEE 754 trapping
                                   modes that are established at program
                                   initialization. Processing is
                                   left-to-right. The common exceptions, by
                                   definition, are invalid, division by
                                   zero, and overflow.
                                   o %none, the default, turns off all
                                   trapping modes.
                                   Do not use this option for programs that
                                   depend on IEEE standard exception
                                   handling; you can get different
                                   numerical results, premature program
                                   termination, or unexpected SIGFPE
                                   signals.
 -inline=%auto                     Enables automatic inlining

 -libmil                           Use inline expansion templates for libm.

 -library=iostream                 Use "classic" (pre 1998 C++ standard)
                                   iostream library
                                   Prior to the C++ standard (1998), there
                                   was one iostream library, what is now
                                   often called "classic" iostreams. The
                                   C++ standard defines a different, but
                                   similar, iostream library, which we call
                                   "standard" iostreams. To get classic
                                   iostreams in standard (default) mode,
                                   you use the option "-library=iostream".
 -library=iostream,no%Cstd         Same as -library=iostream plus
                                   -library=no%Cstd
                                   You can combine two options into one:
                                   -library=iostream,no%Cstd
 -library=no%Cstd                  Do not find the standard library headers
                                   or the runtime library itself, in order
                                   to avoid mixing the standard library
                                   with classic iostreams.
                                   Some of the remainder of the C++
                                   standard library (in particular, the
                                   standard string class) relies on using
                                   standard iostreams. If you attempt to
                                   use those library features with classic
                                   iostreams, the code will not work. To
                                   ensure that you don't attempt to mix the
                                   standard library with classic iostreams,
                                   you can use the option -library=no%Cstd.
                                   With that option, the compiler does not
                                   find the standard library headers or the
                                   runtime library itself.
 -lm                               Link with math library

 -lmopt                            This chooses the math library that is
                                   optimized for speed
 -native                           Select native machine characteristics
                                   for optimization.
 -Qoption <phase> <flags>          Pass flags along to compiler phase:

                                   f90comp Fortran first pass

                                   iropt Global optimizer

                                   cg Code generator

 -Qoption cg <flags>               See -Wc,<flags> below.

 -Qoption cg -Qgsched-T4           See -Wc,-Qgsched-T4

 -Qoption cg -Qgsched-trace_late=1 See -Wc,-Qgsched-trace_late=1

 -Qoption iropt -Mt<n>             See -W2,-Mt<n>

 -Qoption iropt -restrict          See -W2,-O4+restrict

 -Qoption iropt -restrict_g        See -W2,-O4+restrict_g

 -Qoption f90comp
 -array_pad_rows,<n>               Enable padding of f90 arrays by n.
 -Qoption f90comp -expansion       Enable f90 array expansion.

 -Qoption iropt +ansi_alias        assume (more restrictive) ANSI C
                                   semantics for pointer aliasing
 -Qoption iropt <flags>            See -W2,<flags> below.

 -Qoption iropt -Adata_access      enable optimizations based on data
                                   access patterns
 -Qoption iropt -Amemopt           See -W2,-Amemopt

 -Qoption iropt bmerge             enable branch merge optimizations

 -Qoption iropt -Ma<n>             See -W2,-Ma<n>

 -Qoption iropt -Mm<n>             See -W2,-Mm<n>

 -Qoption iropt -Mr<n>             See -W2,-Mr<n>

 -Qoption iropt -O4+algassoc       enable floating point reassociation

 -Qoption iropt -O4+bcopy          allows replacing copy and memset loops
                                   with library calls
 -Qoption iropt -O4+scalarrep      disable scalar replacement optimization

 -Qoption iropt -whole             See -W2,-whole

 -stackvar                         Allocate routine local variables on
                                   stack (FORTRAN).
 -W<phase>,<flags>                 Pass flags along to compiler phase:

                                   2 global optimizer

                                   c code generator

 -W2,-Abopt                        Enable aggressive optimizations of all
                                   branches.
 -W2,-Adata_access                 Enable optimizations based on data
                                   access patterns.
 -W2,-Aheap                        Allows the compiler to recognize
                                   malloc-like memory allocation functions.
 -W2,-Amemopt                      Memory access optimization

 -W2,-Aunroll                      Enables outer-loop unrolling.

 -W2,-crit                         Enable optimization of critical control
                                   paths
 -W2,-Ma<n>                        Enable inlining of routines with frame
                                   size up to n.
 -W2,-Mm<n>                        Maximum module increase limit for
                                   inlining.
 -W2,-Mp<n>                        Procedures with entry counts equal or
                                   greater than n become candidates for
                                   inlining.
 -W2,-Mr<n>                        Maximum code increase due to inlining is
                                   limited to n triples.
 -W2,-Ms<n>                        Maximum level of recursive inlining.

 -W2,-Mt<n>                        The maximum size of a routine body
                                   eligible for inlining is limited to n
                                   triples.
 -W2,-O4+ansi_alias                Assume (more restrictive) ANSI C
                                   semantics for pointer aliasing.
 -W2,-O4+restrict                  This tells the compiler to assume that
                                   different pointer-type formal parameters
                                   point to their own memory locations (C
                                   restricted pointers)
 -W2,-O4+restrict_g                This tells the compiler to assume that
                                   different global pointer variables point
                                   to their own memory locations.
 -W2,-reroll=1                     Turns on loop rerolling.

 -W2,-whole                        Do whole program optimizations.

 -Wc,-Qdepgraph-early_cross_call=1 Enable early cross-call instruction
                                   scheduling.
 -Wc,-Qgsched-T4                   Sets the aggressiveness of the trace
                                   formation.
 -Wc,-Qgsched-trace_late=1         Turns on the late trace scheduler.

 -Wc,-Qgsched-trace_spec_load=1    Turns on the conversion of loads to
                                   non-faulting loads inside the trace.
 -Wc,-Qiselect-funcalign=<n>       Do function entry alignment at n-byte
                                   boundaries.
 -Wc,-Qpeep-Sh0                    Disables the max live base registers
                                   algorithm for sethi hoisting.
 -Xa                               Assume ANSI C conformance, allow K & R
                                   extensions. (default mode)
 -xalias_level=<a>                 Allows compiler to perform type-based
                                   alias analysis at the given alias level.
                                   basic assume ISO C9X aliasing rules for
                                   basic types only.
                                   std assume ISO C9X aliasing rules.

                                   strong assume all pointers are type safe
                                   (strongly typed).
 -xarch=<a>                        Limit the set of instructions the
                                   compiler may use.
 -Xc                               Assume strict ANSI C conformance.

 -xcache=<c>                       Defines the cache properties for use by
                                   the optimizer.
                                   c must be one of the following:

                                   o native (set parameters for the host
                                   environment)
                                   o s1/l1/a1

                                   o s1/l1/a1:s2/l2/a2

                                   o s1/l1/a1:s2/l2/a2:s3/l3/a3

                                   The si/li/ai are defined as follows:

                                   si The size of the data cache at level
                                   i, in kilobytes.
                                   li The line size of the data cache at
                                   level i, in bytes.
                                   ai The associativity of the data cache
                                   at level i.
 -xchip=<c>                        Specifies the target processor for use
                                   by the optimizer. c must be one of:
                                   generic, generic64, native, native64,
                                   old, super, super2, micro, micro2,
                                   hyper, hyper2, powerup, ultra, ultra2,
                                   ultra2i, ultra3, 386, 486, pentium,
                                   pentium_pro, 603, 604.
 -xcrossfile                       Enable cross-file inlining.

 -xdepend                          Analyze loops for data dependencies.

 -xO1                              Does basic local optimization
                                   (peephole).
 -xO2                              xO1 and more local and global
                                   optimizations.
 -xO3                              Besides what xO2 does, it optimizes
                                   references or definitions for external
                                   variables. Loop unrolling and software
                                   pipelining are also performed.
 -xO4                              xO3 plus function inlining.

 -xO5                              Besides what xO4 does, it enables
                                   speculative code motion.
 -xpad=common[:<n>]                Pad common block variables, for better
                                   use of cache. n specifies the amount of
                                   padding to apply. If no parameter is
                                   specified then the compiler selects one
                                   automatically.
 -xpad=local[:<n>]                 Pad local variables only, for better use
                                   of cache. n specifies the amount of
                                   padding to apply. If no parameter is
                                   specified then the compiler selects one
                                   automatically.
 -xparallel                        Use parallel processing to improve
                                   performance.
 -xprefetch                        Enable generation of prefetch
                                   instructions.
 -xprofile                         See below

 -xprofile=collect                 Collect profile data for feedback
                                   directed optimizations.
 -xprofile=use                     Use data collected for profile feedback.

 -xreduction                       Parallelize loops containing reductions.

 -xregs=syst                       Allows use of the system reserved
                                   registers %g6 and %g7, and %g5 if not
                                   already allowed by -xarch value.
 -xrestrict[=f1,...,f2,%all,       Treat pointer-valued function parameters
 %none]                            as restricted pointers. The default is
                                   %none. Specifying -xrestrict is
                                   equivalent to specifying
                                   -xrestrict=%all.
 -xsafe=mem                        Enables the use of non-faulting loads
                                   when used in conjunction with
                                   -xarch=v8plus is set, assumes that no
                                   memory based traps will occur.
 -Xt                               Assume K & R conformance, allow ANSI C.

 -xvector                          Enable vectorization of loops with calls
                                   to math routines.

 Kernel Parameters

 consistent_coloring

 Consistent Coloring controls the
 page coloring policy. It can be
 set to one of the following:
 0: (default) dynamic (uses
 various vaddr bits)
 1: static (virtual=paddr)

 2: bin hopping