Intel(R) Fortran & C++ Compiler 7.1 for Linux --------------------------------------------- Intel(R) Fortran & C++ compiler options. Used for SGI Altix 3000 submissions. Performance -O1 Optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit. Turns off software pipelining to reduce code size. Enables the same optimizations as -O2 except for loop unrolling. Optimations include global register allocation, instruction scheduling, register variable detection, common subexpression elimination, dead code elimination, variable renaming, copy propagation, constant propagation, strength reduction-induction variable, tail recursion elimination. -O2 Enable optimizations (DEFAULT) done with -O1 + software pipelining, loop unrolling, inlining of intrinsics. -O3 Enable -O2 plus more aggressive optimiza tions including loop transformation, OpenMP, and prefetching. High-level optimizations use the properties of source code constructs such as loops and arrays in applications written in high-level programming languages. Optimizes for maximum speed, but may not improve performance for some programs. Enable -O2 optimizations + prefetching, scalar replacement, loop transformations. -O0 Disable optimizations -O1, -O2 and -O3. -O Same as -O2 -Ob Control inline expansion: n=0 -- Disables inlining n=1 -- Inline functions declared with __inline, and perform C++ inlining n=2 -- Inline any function, at the com piler's discretion (same as -ip) -falias Assume aliasing in program (DEFAULT) -fno-alias Assume no aliasing in program -ffnalias Assume aliasing within functions (DEFAULT) -fno-fnalias Assume no aliasing within functions, but assume aliasing across calls -mp Maintain floating point precision (disables some optimizations) -mp1 Improve floating-point precision (speed impact is less than -mp) -tpp1 Target optimization to the Itanium processor. -tpp2 Target optimization to the Itanium 2 processor. -mcpu= Optimize for a specific cpu itanium -- Optimize for Itanium(R) processor itanium2 -- Optimize for Itanium(R) 2 processor Advanced Performance Enable and specify the scope of Interprocedural (IP) Optimizations: -ip Enable single-file IP optimizations (within files) -ipo Enable multi-file IP optimizations (between files) -ipo_c Generate a multi-file object file (ipo_out.o) -ipo_S Generate a multi-file assembly file (ipo_out.s) Modify the behavior of IP: -ip_no_inlining Disable IP inlining (requires -ip or -ipo) -ipo_obj Force generation of real object files (requires -ipo) Other Advanced Performance Options: -nolib_inline Disable inline expansion of intrinsic functions -pad Enable(DEFAULT) changing variable and array memory layout -nopad Disable changing variable and array memory layout -unroll0 Disable loop unrolling -safe_cray_ptr Cray pointers do not alias with other variables -prof_dir Specify directory for profiling output files (*.dyn and *.dpi) -prof_file Specify file name for profiling summary file -prof_gen Instrument program for profiling -prof_use Enable use of profiling information during optimization -fnsplit[-] Enable/disable function splitting (enabled with -prof_use) -qp, -p Compile and link for function profiling with UNIX prof tool -opt_report Generate an optimization report to stderr -opt_report_file Specify the filename for the generated report -opt_report_level[level] Specify the level of report verbosity (min|med|max) -opt_report_phase Specify the phase that reports are generated against -opt_report_routine Reports on routines containing the given name -opt_report_help Display the optimization phases available for reporting -openmp Enable the compiler to generate multi- threaded code based on the OpenMP* directives -openmp_profile Link with instrumented OpenMP runtime library to generate OpenMP profiling infor mation for use with the OpenMP component of the VTune(TM) Performance Analyzer -openmp_stubs Enables the user to compile OpenMP programs in sequential mode. The openmp directives are ignored and a stub OpenMP library is linked (sequential) -openmp_report{0|1|2} Control the OpenMP parallelizer diagnostic level -parallel Enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel -par_report{0|1|2|3} Control the auto-parallelizer diagnostic level -par_threshold[n] Set threshold for the auto-parallelization of loops where n is an integer from 0 to 100 -ansi_alias[-] Enable(DEFAULT)[disable] stating ANSI com pliance of the compiled program and that optimizations can be based on the ANSI rules (implies -restrict) -ivdep_parallel Make ivdep directives mean no loop carried dependencies -ftz Flush denormal results to zero -IPF_fma[-] Enable[disable] the combining of floating point multiplies and add/subtract opera tions -IPF_fltacc[-] Enable[disable] optimizations that affect floating point accuracy -IPF_flt_eval_method0 Floating point operands evaluated to the precision indicated by program -IPF_fp_speculation Enable floation point speculations with the following conditions: fast - speculate floating point operations safe - speculate only when safe strict - same as off off - disables speculation of floating- point operations -complex_limited_range This option causes the compiler to use the highest performance formulations of complex arithmetic operations, which may not pro­ duce acceptable results for input values near the top or bottom of the legal range. Without this option, the compiler users a better formulation of complex arithmetic operations which produces acceptable results for the full range of input values, at some loss in performance. -[no]stack_temps Compiling with -nostack_temps instructs the compiler to allocate space in the heap for temporary arrays. -stack_temps tells the compiler to allocate space for temporary arrays on the runtime stack whenever possi­ ble. Default is -nostack_temps. Output, Debug -c Compile to object (.o) only, do not link -S Compile to assembly (.s) only, do not link (*I) -use_asm Produce objects through assembler -fcode-asm Produce assembly file with optional code annotations -fsource-asm Produce assembly file with optional code annotations -f[no]verbose-asm Produce assembly file with compiler com ments (DEFAULT) -list Print source listing on sdtout -list -show Include print source listing on stdout with INCLUDE files expanded -o Name output file -g Produce symbolic debug information in object file -inline_debug_info Preserve the source position of inlined code instead of assigning the call-site source position to inlined code Fortran Preprocessor -D[=] Define macro -E Preprocess to stdout -EP Preprocess to stdout omitting #line direc tives -P, -F Preprocess to file -fpp[n] Run Fortran preprocessor on source files prior to compilation n=0 disable CVF and # directives, equiva lent to no fpp n=1 enable CVF conditional compilation and # directives (DEFAULT) n=2 enable only # directives n=3 enable only CVF conditional compilation directives -cpp[n] Same as -fpp[n] -I Add directory to include file search path -U Remove predefined macro -X Remove standard directories from include file search path C Preprocessor -A[(val)] Create an assertion 'name' having value 'val' -A- Remove all predefined macros -C Don't strip comments -D[=] Define macro -E Preprocess to stdout -EP Preprocess to stdout omitting #line direc tives -P, -F Preprocess to file -I Add directory to include file search path -idirafter Add directory (dir) to the second include file search path (after -I) -U Remove predefined macro -X Remove standard directories from include file search path -H Print "include" file order and continue compilation. -M Generate makefile dependency information -MD Preprocess and compile. Generate output file (.d extension) containing dependency information. -MF Generate makefile dependency information in . Must specify -M or -MM. -MG Similar to -M, but treats missing header files as generated files. -MM Similar to -M, but does not include system header files. -MMD Similar to -MD, but does not include system header files. -MX Generate dependency file (.o.dep extension) containing information used for the Intel wb tool. -dM Output macro definitions in effect after preprocessing (use with -E). Component Control -Qoption,, Pass options to tool specified by -Qlocation,, Set as the location of tool specified by -Qinstall Set as root of compiler installation Language -i2 Set default KIND of integer variables is 2 -i4 Set default KIND of integer variables is 4 -i8 Set default KIND of integer variables is 8 -r8 Set default size of REAL to 8 bytes -r16 Set default size of REAL to 16 bytes -autodouble Same as -r8 -doubletemps All intermediate results of floating-points values are at least double precision. -DD Compile debug statements (indicated by D in column 1) -DX Compile statements that have X in column 1 -DY Compile statements that have Y in column 1 -FR Specifies source files are in free format -FI Specifies source files are in fixed format -72 Specify 72 column lines for fixed form sources -80 Specify 80 column lines for fixed form sources -132 Specify 132 column lines for fixed form sources -extend_source Same as -132 -pad_source Make compiler acknowledge blanks at the end of a line -dps Enable DEC* PARAMETER statement recognition (DEFAULT) -nodps Disable DEC* PARAMETER statement recogni tion -1, -onetrip Execute any DO loop at least once -auto Make all local variables AUTOMATIC -auto_scalar Make scalar local variables AUTOMATIC (DEFAULT) -ansi Select strict ANSI C/C++ conformance dialect -save Save all variables (static allocation); opposite of -auto -u, -implicitnone Set IMPLICIT NONE by default -common_args Assume "by reference" subprogram arguments may alias one another -vms Enable VMS and DEC statement extensions -zero Implicitly initialize all data to zero -Qdyncom"blk1,blk2,..." Make given common blocks dynamically-allo cated -Qloccom"blk1,blk2,..." Make given common blocks locally-allocated -nbs Treat backslash as a normal character, not an escape character -nus Do not append an underscore to external subroutine names -nus[,] Do not append an underscore to subroutine names listed in -lowercase Change routine names to all lowercase (DEFAULT) -uppercase Change routine names to all uppercase -[no]align Analyze and reorder memory layout for vari ables and arrays -Zp[n] Specify alignment constraint for structures (n=1,2,4,8,16) -y, -syntax Perform syntax check only -[no]restrict Enable [disable] the 'restrict' keyword for disambiguating pointers -Xa Select extended ANSI C dialect -Xc, ansi Select strict ANSI conformance dialect -c99[-] Enable(DEFAULT) [disable] C99 support for C programs -std=c99 Enable c99 support for C programs -Kc++ Compile all source or unrecognized file types as C++ source files -fno-rtti Disable RTTI support -Zp[n] Specify alignment constraint for structures (n=1,2,4,8,16) -syntax Perform syntax check only -fshort-enums Allocate as many bytes as needed for enu merated types -fsyntax-only Same as -syntax -funsigned-char Change default char type to unsigned -funsigned-bitfields Change default bitfield type to unsigned Compiler Diagnostics -cerrs[-] Enable[disable](DEFAULT) terse format for diagnostic messages -cm Suppress all comment messages -q Suppress printing errors to stderr -w Disable all warnings -w Control diagnostics: n=0 -- Display errors (same as -w) n=1 -- Display warnings and errors (DEFAULT) n=2 -- Display remarks, warnings, and errors -wn Print a maximum of n errors -wd[,,...] Disable diagnostics L1 through LN -we[,,...] Change severity of diagnostics L1 through LN to error -ww[,,...] Change severity of diagnostics L1 through LN to warning -wr[,,...] Change severity of diagnostics L1 through LN to remark -Wall Enable all warnings -Werror Force warnings to be reported as errors -Wn Disable warnings (n=0) or show warnings (n=1, DEFAULT) -WB Issue a warning instead of an error for out-of-bounds array references -w90, -w95 Suppress messages about use of non-standard Fortran -e90, -e95 Issue errors for non-standard Fortran Miscellaneous -help Prints list of compiler options -V Display compiler version information -dryrun Show driver tool commands but do not exe cute tools -x All source files found subsequent to -x will be recognized as one of the following types: c -- C source file c++ -- C++ source file c-header -- C header file cpp-output -- C pre-processed file assembler -- Assembly file assembler-with-cpp -- Assembly file that needs to be preprocessed none -- Disable recognition and revert to file extension -v Show driver tool commands and execute tools -Tf Compile file as Fortran source -nobss_init Disable placement of zero-initialized vari ables in BSS (use DATA) -Kpic, -KPIC Generate position independent code -fpic, -fPIC Generate position independent code -Knopic, -KNOPIC Do not generate position independent code -fr32 Disable use of high floating point regis ters -size_lp64 Assume 64-bit size for long and pointer types Linking/Linker -L Instruct linker to search for libraries -i_dynamic Link Intel provided libraries dynamically -dynamic-linker Selects a dynamic linker (filename) other than the default -mrelax Pass -relax to the linker -mnorelax Do not pass -relax to the linker -no_cpprt Do not link in C++ runtime libraries -nodefaultlibs Do not use standard libraries when linking -nostartfiles Do not use standard startup files when linking -nostdlib Do not use standard libraries and startup files when linking -static Prevents linking with shared libraries -shared Produce a shared object -u Pretend the is undefined -Xlinker Pass directly to the linker for pro cessing -Wl,[,,...] Pass options o1, o2, etc. to the linker for processing -C90 Link with alternate I/O library for mixed output with C -posixlib Link with POSIX library -Vaxlib Link with portability library Copyright Information Copyright (C) 1985-2002, Intel Corporation. All rights reserved. * Other brands and names are the property of their respective owners. dplace - a tool for controlling placement of processes onto cpus -c Cpu_number(s). Specified as a list of cpu ranges: Example: "-c1", "-c2-4", "-c1,4-8,3". Cpu numbers are NOT physical cpu numbers. They are logical cpu number that are relative to the cpus that are in the set of allowed cpus as specified by the current cpumemset or "runon" command. Cpu numbers start at 0. If this option is not specified, all cpus of the current cpumemset are available. -e Exact placement. As proceses are created, they are bound to cpus in the exact order that the cpus are specified in the cpu list. Cpu numbers may appear multiple times in the list. A cpu value of "x", in the argument list for -c option, indicates that binding should not be done for that the process. If the end of the list is reached, binding starts over at the beginning of the list. Example: runon 4-7 dplace -e -c0,x,x,1-3 a.out where a.out is an OpenMP application that has to be run on 4 processors. Pin thread 1 on cpu 4, skip the next two Intel OpenMP compiler helper threads, and bind the next 3 threads on cpus 5,6,7 respectively. OpenMP Environment variables: OMP_NUM_THREAD Sets the number of threads to use during execution. Default is the number of processors OMP_DYNAMIC Enables (true) or disables (false) the dynamic adjustment of the number of threads. Default is false. KMP_LIBRARY Selects the OpenMP runtime library throughput. The options for the variable value are: serial, turnaround, or throughput indicating the execution mode. The default value of throughput is used if this variable is not specified. KMP_STACKSIZE Sets the number of bytes to allocate for each parallel thread to use as its private stack. Use the optional suffix b, k, m, g, or t, to specify bytes, kilobytes, megabytes, gigabytes, or terabytes. Default on Itanium compiler:4m Others: limit [ resource [ max-use ] ] Limit the consumption by the current process or any process it spawns, each not to exceed max-use on the specified resource. If max-use is omitted, print the current limit; if resource is omitted, display all limits. resource may include: stacksize Maximum stack size for the process. Portability flags for SPEC CPU2000 flags: -Dalloca=__builtin_alloca Replace occurrences of alloca() with __builtin_alloca. -DSPEC_CPU2000_LP64 Compile using LP64 programming model. -D_LIBC Don't nclude GNU C libraries -DLINUX_i386 Linux Intel system, use "long long" as 64bit variable. -DHAS_ERRLIST Prog env provides specification for "sys_errlist[]". -DSPEC_CPU2000_NEED_BOOL Use SPEC provided definition of the boolean type. -DSPEC_CPU2000_LINUX_IA64 Compile for an IA64 system running Linux. -DPSEC_CPU2000_GLIBC22 Compatibility with 2.2 & later versions of glibc -DSYS_IS_USG Specifies that the operating system is USG compliant. -DSYS_HAS_TIME_PROTO Do not explicitly declare time(). -DSYS_HAS_SIGNAL_PROTO Do not explicitly #include -DSYS_HAS_IOCTL_PROTO Do not explicitly declare ioctl(). -DSYS_HAS_ANSI System is ANSI compliant. -DSYS_HAS_CALLOC_PROTO Do not explicitly declare calloc(). -FI Fixed-format F90 source code.