IBM AIX Flag Disclosure SPEC CPU2000 Last Revised 29 February, 2000 Source Level Portability Options ================================ -DHOST_WORDS_BIG_ENDIAN (176.gcc) Host system is big-endian. -DAIX (186.crafty) Sets some basic parameters like endian-ess, OS type, and ANSI language extensions to be compatible with an AIX system. -DNEED_EXPLICIT_SPECIALIZATION (252.eon) Supply function definitions with explicit types in two cases where templatized versions fail to compile. -DSPEC_CPU2000_AIX (253.perlbmk) Compile the SPEC CPU2000 modified perl for an AIX system. -DSYS_IS_BSD (254.gap) Compile gap for a BSDish system. -DSYS_STRING_H (254.gap) Do not explicitly include string.h -DSYS_HAS_TIME_PROTO (254.gap) Do not supply prototypes for the time(), times() and getrusage() functions. -DSYS_HAS_MALLOC_PROTO (254.gap) Do not supply prototypes for malloc() and free(). -DSYS_HAS_CALLOC_PROTO (254.gap) Do not supply a prototype for calloc(). -DHAVE_SIGNED_CHAR (300.twolf) System allows signed char type. Compiler Options ================ -ma Use built-in alloca() function. -O Performs optimizations that the compiler developers considered the best combination for compilation speed and runtime performance. -O3 Perform some memory and compile time intensive optimizations in addition to those executed with -O. The -O3 specific optimizations have the potential to slightly alter the semantics of a user's program. Optimizations may include, but are not limited to: Aggressive code motion, and scheduling on computations that have the potential to raise an exception; Relaxed conformance to IEEE rules in cases where the difference in the results is not important to an application; Rewriting of floating point expressions. -O4 Equivalent to -O3 -qipa with automatic generation of architecture ( -qarch= )and tuning ( -qtune= )options ideal for that platform. -O5 Equivalent to -O3 -qipa=level=2 with automatic generation of architecture ( -qarch= )and tuning ( -qtune= )options ideal for that platform. -Q The -Q option without any list inlines all appropriate procedures, subject to limits on the number of inlined calls and the amount of code size increase as a result. -Q=xxx Inline all functions that contain less than xxx lines of source. -qansialias Use type-based aliasing during optimization -qarch=ppc Produces object code containing instructions that will run on any of the 32-bit PowerPC hardware platforms. -qarch=pwr3 Produces object code containing instructions that will run on power3 processors. -qarch=rs64b Produces object code containing instructions that will run on RS64-II processors. -qfixed Indicates that the input source program is in fixed form. Allows fixed format Fortran 77 programs to be compiled using the xlf90 compiler invocation. -qhot perform high-order transformations on loops during optimization. -qipa=level=2 Turns on interprocedural analysis with inlining, cloning, full alias analysis, constant propagation, call-site tailoring, and dead code removal. -qlanglvl=ansi Compilation conforms to the ANSI standard. -qpdf/pdf2 Profile directed feedback optimization -qsuffix=f=f90 Sets the suffix for source files to be .f90. The .f90 suffix is required by xlf90 to compile Fortran 90 programs. -qtune=pwr3 Instruction selection, scheduling, and other implementation dependent performance enhancements for the Power3 processor. -qtune=rs64b Instruction selection, scheduling, and other implementation dependent performance enhancements for the RS64-II processor. Linker Options ============== -lmass Link the mathematical acceleration subsystem libraries (MASS), which contain libraries of tuned mathematical intrinsic functions. See www.austin.ibm.com/tech/MASS. -lhmu Link fast malloc libraries. These libraries are part of the memdbg package that is included with IBM C compilers. -lpdf Routines used in the first pass of the profile directed feedback process. Routines from this library are not used in building the final executable. -bnso Brings referenced library procedures into the object file -bI:/lib/syscalls.exp Create statically linked object files (syscalls.exp supplies the names of the routines that can be imported). FDPR: ----- The fdpr (feedback directed program restructuring) program optimizes the executable image of a program by collecting information on the behavior of the program while the program is used for some typical workload, and then creating a new version. It is available on AIX Version 4 systems as part of the Performance Toolbox for AIX. Options: -R2 - Employ a program-reordering technique in which the original structure of the program, including traceback entries, is preserved. -R3 - Employ global reordering techniques that do not preserve debug information.