IBM Flag disclosure for 12/09/97 XLC/XLF options: -O3 optimization level 3 turned on -qarch=ppc -qarch=power2 -qarch=pwrx sets target architecture for compile -qtune=pwr2 -qtune=604 instruction selection, scheduling, and other implementation dependent performance enhancements -Q -Q=xxx Turn inlining on Inline functions < xxx lines -qpdf1/pdf2 profile directed feedback optimization -qmaxmem=-1 No limit to how much memory to use during compilation -qhsflt -qfloat=hsflt floating-point division by multiplication by the reciprocal of the divisor -qrndsngl rounds the result of each single-precision operation to single-precision, rather than waiting until the full expression is evaluated -qstrict ensures that optimizations of -O3 do not alter the semantics of the program -qalias=noaryovrlp Program does not contain array assignments of overlapping or storage-associated arrays; can produce significant performance improvements for array language. -qhot -qhot=arraypad=248 Performs additional loop optimization and pads array dimensions to prevent cache misses. -qipa -qipa=level=2:partition=large Turns on inter-procedural analysis. Specifies the size of program sections that are analyzed together. Larger partitions produce better analysis but require more storage. -qintlog allows for mixing integer and logical data entities in expressions and statements -tbtable=none Don't generate traceback information -qnosave sets default storage class of local variables to automatic -qdatalocal assume all data items are local -1 Executes DO loops at least once, if reached. -qdpc increase the precision of real constants, for maximum accuracy when assigning real constants to DOUBLE PRECISION variables. -qlog4 Logical expressions that have a LOGICAL result are of type LOGICAL(4). Linker Options: -lmass link mathematical acceleration subsystem library -bnso -bI:/lib/syscalls.exp Statically bind executables KAP Preprocessor Options: -Pk -Wp turns on the Kap pre-processor -ag=a pads common blocks and memory local to the subroutine to avoid cache line collisions. -ag=b kapf can adjust the leading dimensions of arrays in COMMON away from a power of 2 if the arrays are not used as actual arguments to any user procedure calls. -r=2 sets roundoff level to 2 -ur2=xxx sets a maximum weight (estimate of work) for each unrolled iteration. (Work is estimated by counting operands and operators in a loop.) -inl Turn on inlining -ur=xxx maximum number of iterations of a loop to unroll -lm=5 Limit amount of loop nesting. -fuse The fuse command line option enables loop fusion, a conventional compiler optimization that transforms two adjacent loops into a single loop. -f Leave pre-processed source file around Vast Preprocessor Options: -Pv -Wp turns on the Vast Pre-processor -me informs the preprocessor to enable alignment, inter-array padding and array redimensioning. -o Leave pre-processed source file around -ew is the same as -ea478 -ea allows associative transformations. -e2 specifies that no data dependencies exist in loop containing pointer-based variables. -e4 generates calls to optimized BLAS library routines. -e7 automatically expands called routines inline. -e8 searches input file first for expandable routines. For fdpr: -R2 -R3 Specifies the level of optimization