FLAG DESCRIPTIONS SUN C, C++ AND FORTRAN Forte 6 update 1 -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: -O5 o A set of inline expansion templates (-libmil) o The -fsimple=2 option o The -dalign option o The -xlibmopt option o The -xdepend 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 -fsimple[=n] Allows the compiler to make simplifying assumptions concerning floating-point arithmetic. -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. -libmil Use inline expansion templates for libm -library=iostream,no%Cstd The option removes the C++ standard library, and uses "classic" iostreams instead. -native select native machine characteristics for optimization -stackvar Allocate routine local variables on stack (FORTRAN). -Qoption Pass flags along to compiler phase: cg Code generator f90comp Fortran first pass iropt Global optimizer -Qoption f90comp -expansion Enable f90 array expansion. -Qoption iropt -Adata_access Enable optimizations based on data access patterns. -Qoption iropt -Ma See -W2,-Ma below. -Qoption iropt -Mm See -W2,-Mm below. -Qoption iropt -Mr See -W2,-Mr below. -Qoption iropt -Mt See -W2,-Mt below -Qoption iropt -whole See -W2,-whole below -W, Pass flags along to compiler phase: 2 global optimizer c code generator -W2,-Abopt Enable aggressive optimizations of all branches. -W2,-crit enable optimization of critical control paths -W2,-Ma enable inlining of routines with frame size upto n -W2,-Mm maximum module increase limit for inlining -W2,-Mp Procedures with entry counts equal or greater than n become candidates for inlining. -W2,-Mr maximum code increase due to inlining is limited to n triples -W2,-Mt 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_g This tells the compiler to assume that different global pointer variables point to their own memory locations -W2,-whole do whole program optimizations -Wc,-Qiselect-funcalign= do function entry alignment at n-byte boundaries. -Xa Compile assuming ANSI C conformance, allow K & R extensions (default mode) -Xc Compile assuming strict ANSI C conformance -Xt Compile assuming K & R conformance, allow ANSI C -xalias_level= 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 that all pointers are type safe (strongly typed) -xarch= Limit the set of instructions the compiler may use -xcache= Defines the cache properties for use by the optimizer. c must be one of the following: o native 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 native Set the parameters for the best performance on the host environment. -xchip= 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. -xlibmopt This chooses the math library that is optimized for speed. -xO1 Does basic local optimization (peephole). -xO2 O1 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. -[x]pad=local[:] 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. -[x]pad=common[:] 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. -xparallel Use parallel processing to improve performance -xprefetch enable generation of prefetch instructions -xprofile=use Use data collected for profile feedback -xprofile=collect Collect profile data for feedback directed optimizations. -xreduction Parallelize loops containing reductions -xrestrict[=f1,...,f2,%all, %none] Treat pointer-valued function parameters 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. -xvector enable vectorization of loops with calls to math routines