Pushing language C Popping language C Pushing language CUDA Popping language CUDA Pushing language Cxx Popping language Cxx Pushing language FC Popping language FC ================================================================================ ================================================================================ Starting Configure Run at Fri Mar 21 08:59:53 2014 Configure Options: --configModules=PETSc.Configure --optionsModule=PETSc.compilerOptions --prefix=/d/dev01/qlu/Lib/petsc-3.4.2-intel-mpi-rel-64bit --with-petsc-arch=arch-intel-mpi-rel-64bit --with-cc=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --with-cxx=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --with-fc=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --with-blas-lapack-dir=/apps/compilers/intel_2013/composer_xe_2013.1.117/mkl/lib/intel64 --with-mpi-dir=/apps/compilers/intel_2013/impi/4.1.0.024/intel64 --with-mpi-compilers=0 --with-debugging=0 --download-hypre=/d/dev01/qlu/Lib/hypre-2.9.1a.tar.gz --useThreads=0 --with-x=0 --with-x11=0 --with-xt=0 --with-shared-libraries=0 Working directory: /d/dev01/qlu/Lib/petsc-3.4.2-64bit Machine platform: ('Linux', 'honmbl02', '2.6.9-100.ELsmp', '#1 SMP Tue Feb 1 12:04:42 EST 2011', 'x86_64', 'x86_64') Python version: 2.7.2 (default, Sep 23 2011, 08:24:52) [GCC Intel(R) C++ gcc 4.1 mode] ================================================================================ Pushing language C Popping language C Pushing language CUDA Popping language CUDA Pushing language Cxx Popping language Cxx Pushing language FC Popping language FC ================================================================================ TEST configureExternalPackagesDir from config.framework(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/framework.py:821) TESTING: configureExternalPackagesDir from config.framework(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/framework.py:821) ================================================================================ TEST configureDebuggers from PETSc.utilities.debuggers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/debuggers.py:22) TESTING: configureDebuggers from PETSc.utilities.debuggers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/debuggers.py:22) Find a default debugger and determine its arguments Checking for program /home/dwg/intel/mkl/10.0.011/man/gdb...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/gdb...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/gdb...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/gdb...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/gdb...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/gdb...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/gdb...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/gdb...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/gdb...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/gdb...not found Checking for program /d/dev01/yikuny/local/jdk/bin/gdb...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/gdb...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/gdb...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/gdb...not found Checking for program /usr/kerberos/bin/gdb...not found Checking for program /sbin/gdb...not found Checking for program /usr/sbin/gdb...not found Checking for program /bin/gdb...not found Checking for program /usr/bin/gdb...found Defined make macro "GDB" to "/usr/bin/gdb" Checking for program /home/dwg/intel/mkl/10.0.011/man/dbx...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/dbx...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/dbx...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/dbx...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/dbx...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/dbx...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/dbx...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/dbx...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/dbx...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/dbx...not found Checking for program /d/dev01/yikuny/local/jdk/bin/dbx...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/dbx...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/dbx...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/dbx...not found Checking for program /usr/kerberos/bin/dbx...not found Checking for program /sbin/dbx...not found Checking for program /usr/sbin/dbx...not found Checking for program /bin/dbx...not found Checking for program /usr/bin/dbx...not found Checking for program /usr/local/bin/dbx...not found Checking for program /usr/X11R6/bin/dbx...not found Checking for program /usr/applinux/bin/dbx...not found Checking for program /sbin/dbx...not found Checking for program /apps/cop/bin/dbx...not found Checking for program /home/shirags/bin/dbx...not found Checking for program /apps/pe/bin/dbx...not found Checking for program /apps/cop/bin /dbx...not found Checking for program /home/qlu/dbx...not found Checking for program /home/dwg/intel/mkl/10.0.011/man/xdb...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/xdb...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/xdb...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/xdb...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/xdb...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/xdb...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/xdb...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/xdb...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/xdb...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/xdb...not found Checking for program /d/dev01/yikuny/local/jdk/bin/xdb...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/xdb...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/xdb...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/xdb...not found Checking for program /usr/kerberos/bin/xdb...not found Checking for program /sbin/xdb...not found Checking for program /usr/sbin/xdb...not found Checking for program /bin/xdb...not found Checking for program /usr/bin/xdb...not found Checking for program /usr/local/bin/xdb...not found Checking for program /usr/X11R6/bin/xdb...not found Checking for program /usr/applinux/bin/xdb...not found Checking for program /sbin/xdb...not found Checking for program /apps/cop/bin/xdb...not found Checking for program /home/shirags/bin/xdb...not found Checking for program /apps/pe/bin/xdb...not found Checking for program /apps/cop/bin /xdb...not found Checking for program /home/qlu/xdb...not found Checking for program /home/dwg/intel/mkl/10.0.011/man/dsymutil...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/dsymutil...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/dsymutil...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/dsymutil...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/dsymutil...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/dsymutil...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/dsymutil...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/dsymutil...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/dsymutil...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/dsymutil...not found Checking for program /d/dev01/yikuny/local/jdk/bin/dsymutil...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/dsymutil...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/dsymutil...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/dsymutil...not found Checking for program /usr/kerberos/bin/dsymutil...not found Checking for program /sbin/dsymutil...not found Checking for program /usr/sbin/dsymutil...not found Checking for program /bin/dsymutil...not found Checking for program /usr/bin/dsymutil...not found Checking for program /usr/local/bin/dsymutil...not found Checking for program /usr/X11R6/bin/dsymutil...not found Checking for program /usr/applinux/bin/dsymutil...not found Checking for program /sbin/dsymutil...not found Checking for program /apps/cop/bin/dsymutil...not found Checking for program /home/shirags/bin/dsymutil...not found Checking for program /apps/pe/bin/dsymutil...not found Checking for program /apps/cop/bin /dsymutil...not found Checking for program /home/qlu/dsymutil...not found Defined make macro "DSYMUTIL" to "true" Defined "USE_GDB_DEBUGGER" to "1" ================================================================================ TEST configureCLanguage from PETSc.utilities.languages(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/languages.py:28) TESTING: configureCLanguage from PETSc.utilities.languages(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/languages.py:28) Choose whether to compile the PETSc library using a C or C++ compiler C language is C Defined "CLANGUAGE_C" to "1" ================================================================================ TEST configureFortranLanguage from PETSc.utilities.languages(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/languages.py:37) TESTING: configureFortranLanguage from PETSc.utilities.languages(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/languages.py:37) Turn on Fortran bindings Using Fortran ================================================================================ TEST configureMake from config.programs(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/programs.py:24) TESTING: configureMake from config.programs(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/programs.py:24) Check various things about make Checking for program /home/dwg/intel/mkl/10.0.011/man/make...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/make...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/make...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/make...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/make...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/make...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/make...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/make...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/make...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/make...not found Checking for program /d/dev01/yikuny/local/jdk/bin/make...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/make...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/make...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/make...not found Checking for program /usr/kerberos/bin/make...not found Checking for program /sbin/make...not found Checking for program /usr/sbin/make...not found Checking for program /bin/make...not found Checking for program /usr/bin/make...found Defined make macro "MAKE" to "/usr/bin/make" Checking for program /home/dwg/intel/mkl/10.0.011/man/strings...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/strings...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/strings...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/strings...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/strings...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/strings...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/strings...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/strings...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/strings...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/strings...not found Checking for program /d/dev01/yikuny/local/jdk/bin/strings...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/strings...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/strings...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/strings...not found Checking for program /usr/kerberos/bin/strings...not found Checking for program /sbin/strings...not found Checking for program /usr/sbin/strings...not found Checking for program /bin/strings...not found Checking for program /usr/bin/strings...found Defined make macro "STRINGS" to "/usr/bin/strings" sh: /usr/bin/strings /usr/bin/make Executing: /usr/bin/strings /usr/bin/make sh: /lib64/ld-linux-x86-64.so.2 Oa.6 Oa.6 Oa.6 Oa.6 Oa.6 t$ H ATE1 []A\ []A\ l$@H ATSH ?t8H ]fff [A\A]A^A_ AWAVAUATSH [A\A]A^A_ l$7I \$7H l$HL l$HL |$01 T$XH AWAVAUATSH A`H9q Wfff [A\A]A^A_ AWAVAUATI []A\A]A^A_ t@ff \u tJL vgff [A\A]A^A_ l$ H l$ H l$ H l$ H AWAVA AUATI Dfff D$(% I9l$ D$(% D;d$ []A\A]A^A_ AVAUATUSH t$,H D$,H D$ L t$ I L$@1 t$8H D$HLc T$,J T$ H D$ H D$ H []A\A]A^A_ D$HHc T$ H \$ H T$8H |$0I D$HJ D$HD T$ L |$ I AVAUATUSH D$xH |$x1 D$ H D$x1 D$ht T$hH D$hL D$ H []A\A]A^A_ t$xL |$x1 |$xH <$iH |$xE T$hH T$PI) D$hH T$P1 |$xH |$xH |$xH |$xH |$x1 L$`H D$`H t$`H T$HH T$tH |$xL D$8D |$@H T$8H T$xH t$hH D$xD |$xH T$xE1 |$\H D$xH \$0H \$(H \$ H D$8H D$HI D$PH d$hH \$`L l$pH AUATUH |$(H H9l$(t []A\A]A^ d$(H |$ A []A\A]A^ AUE1 ATE1 []A\A] T$`H AWAVAUA ATUH T$XH D$XH l$PI |$XA t$PI t$XK \$HH \$HH D$HH h[]A\A]A^A_ t$HH |$@H D$HH \$@H t$@H HcD$$H \$HH 8-tfH t$@H D$(H t$4H D$4L T$4I t$HH |$8L D$4I T$HH D$@H D$@H D$HH D$8H ATE1 I(ff []A\ []A\ ATUH []A\A]A^A_ te1 []A\A]A^A_ AWAVAUATUSH u0E1 H;L$ L$$H DD$$H d$ A ([]A\A]A^A_ ([]A\A]A^A_ AWAVAUA ATUSH d$ H d$ t ([]A\A]A^A_ H9CH AUATI H9-Y []A\A] []A\A] AVAUATUSH []A\A]A^A_ []A\A]A^A_ AWAVE1 AUATUSH D$$H I+\$ ([]A\A]A^A_ []A\A]A^A_ []A\A] []A\A] AWE1 AVAUATI T$ I T$ I D$ A tJD9|$ ([]A\A]A^A_ AWAVAUATSH [A\A]A^A_ []A\A] AWAVI AUATUSH []A\A]A^A_ ATE1 []A\A]1 []A\A] l$PH \$HL d$XL l$`L t$hL |$pH t$(H \$XH l$`L d$hL l$pL t$xL L;t$ tBL;- H9L$ t1H9 @t1H D$ H AVAUI ATUSH t7H; t H; []A\A]A^A_ []A\A]A^A_ AWAVAUATUSH |$@A ssfff t]H; l$@H D$HL t^L;%J []A\A]A^A_ ;fff AWAVAUI ATSH tSD8 [A\A]A^A_ [A\A]A^A_ tq[H ]A\1 <$t\H []A\H []A\H []A\H AWAVI AUATI .tUL L$ D D;d$ []A\A]A^A_ T$ D L$ H ([]A\A]A^A_ #tbH |$ H t ;p(v$fff l$ H AWAVI AUATUSH D$ E1 T$ 1 t$(L T$@L uIL9 t$(H D$$+D$ H \$(E1 []A\A]A^A_ T$8H []A\A]A^A_ 8/t=H []A\ ATUSH []A\A] []A\A] l$ H AWE1 AVE1 ATUSH H;5i tgL9 []A\A]A^A_ []A\A]A^A_ swH9M t$ H t$ H H;5! t%H; l$ H ATUH E []A\ s#ff []A\ H;=p l$ H m(E1 l$ H t]H9 s&ff []A\A] attempt to use unsupported feature: `%s' touch: Bad return code from ar_member_touch on `%s' touch: Member `%s' does not exist in `%s' touch: `%s' is not a valid archive touch: Archive `%s' does not exist touch: ! ARFILENAMES/ .SUFFIXES $(MAKE) ${MAKE} *** [%s] Deleting file `%s' unlink: *** Deleting file `%s' kill # commands to execute (built-in): %.*s (from `%s', line %lu): *** [%s] Archive member `%s' may be bogus; not deleted *** Archive member `%s' may be bogus; not deleted ARFLAGS CHECKOUT,v COFLAGS $(CC) -E $(FC) F77FLAGS $(FFLAGS) LINT lint YACC yacc MAKEINFO makeinfo TEXI2DVI texi2dvi CWEAVE cweave CTANGLE ctangle rm -f LINK.o COMPILE.c LINK.c COMPILE.cc COMPILE.C $(COMPILE.cc) COMPILE.cpp LINK.cc LINK.C $(LINK.cc) LINK.cpp YACC.y $(YACC) $(YFLAGS) LEX.l $(LEX) $(LFLAGS) -t COMPILE.f LINK.f COMPILE.F LINK.F COMPILE.r LINK.r COMPILE.def COMPILE.mod COMPILE.p LINK.p LINK.s COMPILE.s LINK.S COMPILE.S PREPROCESS.S $(CC) -E $(CPPFLAGS) PREPROCESS.F PREPROCESS.r LINT.c OUTPUT_OPTION -o $@ .LIBPATTERNS lib%.so lib%.a $(CHECKOUT,v) RCS/%,v RCS/% SCCS/s.% $(AR) $(ARFLAGS) $@ $< %.out @rm -f $@ cp $< $@ %.w %.ch $(CTANGLE) $^ $@ %.tex $(CWEAVE) $^ $@ $(COMPILE.mod) -o $@ -e $@ $^ .def.sym $(COMPILE.def) -o $@ $< cat $< >$@ chmod a+x $@ .s.o $(COMPILE.s) -o $@ $< .S.o $(COMPILE.S) -o $@ $< .c.o .cc.o .C.o .cpp.o .f.o .p.o .F.o .r.o .mod.o $(COMPILE.mod) -o $@ $< .c.ln $(LINT.c) -C$* $< .y.ln .l.ln .y.c .l.c @$(RM) $@ $(LEX.l) $< > $@ .F.f .r.f .l.r .S.s $(PREPROCESS.S) $< > $@ .texinfo.info .texi.info .txinfo.info .tex.dvi $(TEX) $< .texinfo.dvi .texi.dvi .txinfo.dvi .w.c $(CTANGLE) $< - $@ .web.p $(TANGLE) $< .w.tex $(CWEAVE) $< - $@ .web.tex $(WEAVE) $< +$(if $(wildcard $@),,$(CO) $(COFLAGS) $< $@) $(CC) $(LDFLAGS) $(TARGET_ARCH) $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $(FC) $(FFLAGS) $(TARGET_ARCH) -c $(FC) $(FFLAGS) $(LDFLAGS) $(TARGET_ARCH) $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -c $(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) $(TARGET_ARCH) $(M2C) $(M2FLAGS) $(DEFFLAGS) $(TARGET_ARCH) $(M2C) $(M2FLAGS) $(MODFLAGS) $(TARGET_ARCH) $(PC) $(PFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $(CC) $(ASFLAGS) $(LDFLAGS) $(TARGET_MACH) $(AS) $(ASFLAGS) $(TARGET_MACH) $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH) $(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_MACH) -c $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -F $(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -F $(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH) $(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $< $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.s) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.S) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.C) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.p) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(LINK.r) $^ $(LOADLIBES) $(LDLIBS) -o $@ $(COMPILE.c) $(OUTPUT_OPTION) $< $(COMPILE.cc) $(OUTPUT_OPTION) $< $(COMPILE.C) $(OUTPUT_OPTION) $< $(COMPILE.cpp) $(OUTPUT_OPTION) $< $(COMPILE.f) $(OUTPUT_OPTION) $< $(COMPILE.p) $(OUTPUT_OPTION) $< $(COMPILE.F) $(OUTPUT_OPTION) $< $(COMPILE.r) $(OUTPUT_OPTION) $< $(YACC.y) $< $(LINT.c) -C$* y.tab.c $(RM) y.tab.c @$(RM) $*.c $(LEX.l) $< > $*.c $(LINT.c) -i $*.c -o $@ $(RM) $*.c $(YACC.y) $< mv -f y.tab.c $@ $(PREPROCESS.F) $(OUTPUT_OPTION) $< $(PREPROCESS.r) $(OUTPUT_OPTION) $< $(LEX.l) $< > $@ mv -f lex.yy.r $@ $(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@ $(TEXI2DVI) $(TEXI2DVI_FLAGS) $< # Directories files, impossibilities so far. # %s: could not be stat'd. # %s (device %ld, inode %ld): impossibilities in %lu directories. # %s (device %ld, inode %ld): could not be opened. Recursive variable `%s' references itself (eventually) warning: undefined variable `%.*s' unterminated variable reference lookup_file enter_file print_file file.c *name != '\0' .PRECIOUS .LOW_RESOLUTION_TIME .PHONY .INTERMEDIATE .SECONDARY .EXPORT_ALL_VARIABLES .IGNORE .SILENT .POSIX .NOTPARALLEL %04d-%02d-%02d %02d:%02d:%02d .%09d Current time %s:%s | %s # Last modified %s # File has been updated. # File has not been updated. # Also makes: # Command-line target. # Not a target: # Successfully updated. # File is very old. question_flag # File does not exist. # Failed to be updated. # Files # files hash-table stats: can't rename single-colon `%s' to double-colon `%s' Commands for file `%s' were found by implicit rule search, but `%s' is now considered the same file as `%s'. Commands for `%s' will be ignored in favor of those for `%s'. Commands were specified for file `%s' at %s:%lu, can't rename double-colon `%s' to single-colon `%s' *** Deleting intermediate file `%s' Removing intermediate files... %s: Timestamp out of range; substituting %s # Implicit rule search has been done. # Implicit rule search has not been done. # Invalid value in `update_status' member! # Modification time never checked. # File is an intermediate prerequisite. # Implicit/static pattern stem: `%s' # A default or MAKEFILES makefile. # Phony target (prerequisite of .PHONY). # Precious file (prerequisite of .PRECIOUS). # Dependencies commands running (THIS IS A BUG). # Needs to be updated (-q is set). # Commands currently running (THIS IS A BUG). # Invalid value in `command_state' member! addprefix addsuffix basename notdir filter filter-out findstring firstword join patsubst shell sort strip wildcard wordlist words origin foreach call error warning value eval undefined default automatic environment environment override command line %s:%lu: non-numeric first argument to `word' function first argument to `word' function must be greater than 0 non-numeric first argument to `wordlist' function non-numeric second argument to `wordlist' function Cleaning up temporary batch file %s Insufficient number of arguments (%d) to function `%s' Unimplemented on this platform: function `%s' unterminated call to function `%s': missing `%c' Avoiding implicit rule recursion. Trying implicit prerequisite `%s'. Trying rule prerequisite `%s'. Found prerequisite `%s' as VPATH `%s' Trying pattern rule with stem `%.*s'. Looking for a rule with intermediate file `%s'. Rejecting impossible implicit prerequisite `%s'. Rejecting impossible rule prerequisite `%s'. Looking for an implicit rule for `%s'. Looking for archive-member implicit rule for `%s'. *** [%s] %s%s [%s] Error %d (ignored) *** [%s] Error %d (core dumped) write jobserver execvp: %s: Command not found SHELL %s: Shell program not found exec exit login logout umask wait while case break continue read readonly shift times trap switch job.c $(SHELL) $(IFS) /bin/sh vfork (remote) cannot enforce load limit: getloadavg remote_status .DELETE_ON_ERROR don't Read returned EBADF. Duplicate the job FD read jobs pipe Got a SIGCHLD; %u unreaped children. Released token for child 0x%08lx (%s). %s (line %d) Bad shell context (!unixy && !batch_mode_shell) cannot enforce load limits on this operating system f->command_state == cs_finished Putting child 0x%08lx (%s) PID %ld%s on the chain. Current system load = %f (max requested = %f) Live child 0x%08lx (%s) PID %ld %s Reaping losing child 0x%08lx PID %ld %s Reaping winning child 0x%08lx PID %ld %s *** Waiting for unfinished jobs.... Removing child 0x%08lx PID %ld%s from chain. Cleaning up temp batch file %s Need a job token; we %shave children Obtained token for child 0x%08lx (%s). start_waiting_job always-make basic debug environment-overrides help ignore-errors include-dir jobs jobserver-fds load-average just-print old-file print-data-base question no-builtin-rules no-builtin-variables silent no-keep-going touch version no-print-directory what-if warn-undefined-variables quiet stop new-file assume-new assume-old max-load dry-run recon Options: %s: Entering directory `%s' %s: Leaving directory `%s' MAKECMDGOALS MFLAGS MAKEFLAGS This program built for %s /usr/share/locale getcwd: .VARIABLES MAKE_COMMAND $(MAKE_COMMAND) MAKE -*-command-variables-*- ${-*-command-variables-*-} MAKEOVERRIDES MAKELEVEL CURDIR TMPDIR /tmp fwrite (temporary file) .DEFAULT %d,%d main.c dup jobserver %s=%u Updating makefiles.... unlink (temporary file): Updating goal targets.... creating jobs pipe Re-executing: Makefile `%s' was not found init jobserver pipe chdir fopen (temporary file) No targets $(MAKEOVERRIDES) $(-*-command-variables-*-) main -b, -m Ignored for compatibility. -B, --always-make Unconditionally make all targets. -C DIRECTORY, --directory=DIRECTORY Change to DIRECTORY before doing anything. -d Print lots of debugging information. --debug[=FLAGS] Print various types of debugging information. -e, --environment-overrides Environment variables override makefiles. -f FILE, --file=FILE, --makefile=FILE Read FILE as a makefile. -h, --help Print this message and exit. -i, --ignore-errors Ignore errors from commands. -I DIRECTORY, --include-dir=DIRECTORY Search DIRECTORY for included makefiles. -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -k, --keep-going Keep going when some targets can't be made. -l [N], --load-average[=N], --max-load[=N] Don't start multiple jobs unless load is below N. -n, --just-print, --dry-run, --recon Don't actually run any commands; just print them. -o FILE, --old-file=FILE, --assume-old=FILE Consider FILE to be very old and don't remake it. -p, --print-data-base Print make's internal database. -q, --question Run no commands; exit status says if up to date. -r, --no-builtin-rules Disable the built-in implicit rules. -R, --no-builtin-variables Disable the built-in variable settings. -s, --silent, --quiet Don't echo commands. -S, --no-keep-going, --stop Turns off -k. -t, --touch Touch targets instead of remaking them. -v, --version Print the version number of make and exit. -w, --print-directory Print the current directory. --no-print-directory Turn off -w, even if it was turned on implicitly. -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE Consider FILE to be infinitely new. --warn-undefined-variables Warn when an undefined variable is referenced. empty string invalid as file name %sGNU Make %s %sCopyright (C) 2002 Free Software Foundation, Inc. %sThis is free software; see the source for copying conditions. %sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A %sPARTICULAR PURPOSE. %s: Entering an unknown directory %s: Leaving an unknown directory %s[%u]: Entering an unknown directory %s[%u]: Leaving an unknown directory %s[%u]: Entering directory `%s' %s[%u]: Leaving directory `%s' # Make data base, printed on %s # Finished Make data base on %s Usage: %s [options] [target] ... Report bugs to the `-%c' option requires a positive integral argument This program built for %s (%s) unknown debug level specification `%s' warning: -jN forced in submake: disabling jobserver mode. warning: jobserver unavailable: using -j1. Add `+' to parent make rule. No targets specified and no makefile found Couldn't change back to original directory. warning: Clock skew detected. Your build may be incomplete. Makefile `%s' might loop; not remaking it. internal error: multiple --jobserver-fds options Included makefile `%s' was not found. Failed to remake makefile `%s'. internal error: invalid --jobserver-fds string `%s' Makefile from standard input specified twice. %s: %s[%u]: %s[%u]: *** . Stop. %s: *** %s:%lu: *** %s%s: %s virtual memory exhausted misc.c h->count != 0 d == h hash_strdup hash_savestring hash_strfree /usr/include /usr/gnu/include /usr/local/include endif else ifeq ifdef ifneq ifndef extraneous `%s' define endef $(HOME) HOME vpath invalid `override' directive -include sinclude no file name for `%sinclude' missing separator%s unexport missing rule before commands empty `override' directive extraneous `endef' missing `endif' missing target pattern multiple target patterns read.c *p2 != '\0' invalid syntax in conditional empty variable name Reading makefile `%s' MAKEFILE_LIST (no ~ expansion) (no default goal) (don't care) (search path) GNUmakefile Makefile $(MAKEFILES) Reading makefiles... Extraneous text after `%s' directive only one `else' per conditional target `%s' doesn't match the target pattern target `%s' leaves prerequisite pattern empty warning: overriding commands for target `%s' warning: ignoring old commands for target `%s' target `%s' given more than once in the same rule. mixed implicit and normal rules mixed implicit and static pattern rules target file `%s' has both : and :: entries warning: NUL character seen; rest of line ignored Extraneous text after `endef' directive missing `endef', unterminated `define' (did you mean TAB instead of 8 spaces?) commands commence before first target Malformed per-target variable definition target pattern contains no `%%' eval stat: /usr/lib /usr/lib64 %s/%s $(strip $(.LIBPATTERNS)) touch %s touch: open: touch: fstat: touch: read: touch: lseek: touch: write: Still updating file `%s'. Finished updating file `%s'. File `%s' does not exist. Must remake target `%s'. No need to remake target `%s' ; using VPATH name `%s' Ignoring VPATH name `%s'. Pruning file `%s'. remake.c `%s' is up to date. Nothing to be done for `%s'. Warning: File `%s' has modification time %.2g s in the future .LIBPATTERNS element `%s' is not a pattern Found an implicit rule for `%s'. Circular %s <- %s dependency dropped. Using default commands for `%s'. No implicit rule found for `%s'. Prerequisite `%s' is order-only for target `%s'. Commands of `%s' are being run. Recently tried and failed to update file `%s'. Considering target file `%s'. File `%s' was considered already. Prerequisite `%s' is newer than target `%s'. Making `%s' due to always-make flag. Finished prerequisites of target file `%s'. The prerequisites of `%s' are being made. Target `%s' is double-colon and has no prerequisites. Prerequisite `%s' is older than target `%s'. Prerequisite `%s' of target `%s' does not exist. No commands for `%s' and no prerequisites actually changed. Giving up on target file `%s'. *** Warning: .LOW_RESOLUTION_TIME file `%s' has a high resolution time stamp %sNo rule to make target `%s'%s %sNo rule to make target `%s', needed by `%s'%s Target file `%s' needs remade under -q. Failed to remake target file `%s'. Target `%s' not remade because of errors. Successfully remade target file `%s'. file->update_status >= 0 && file->update_status <= 2 Aupdate_file_1 (%.o) # Implicit Rules # %u implicit rules, %u (%.1f%%) terminal. # No implicit rules. %s : # Pattern-specific variable values # %u pattern-specific variable values # No pattern-specific variable values. BUG: num_pattern_rules wrong! %u != %u Y@%s%s%s MAKE_VERSION MAKEFILES $(patsubst %/,%,$(dir $@)) $(patsubst %/,%,$(dir $%)) $(patsubst %/,%,$(dir $*)) $(patsubst %/,%,$(dir $<)) $(patsubst %/,%,$(dir $?)) $(patsubst %/,%,$(dir $^)) $(patsubst %/,%,$(dir $+)) $(notdir $@) $(notdir $%) $(notdir $*) $(notdir $<) $(notdir $?) $(notdir $^) $(notdir $+) define %s endef environment under -e %s %s= (from `%s', line %lu) $(subst ,,%s) # Variables # variable set hash-table stats: x86_64-redhat-linux-gnu 3.80 $(strip $(VPATH)) $(strip $(GPATH)) # VPATH Search Paths vpath %s %s%c # %u `vpath' search paths. # No `vpath' search paths. # General (`VPATH' variable) search path: # No general (`VPATH' variable) search path. can't allocate %ld bytes for hash table: memory exhausted Load=%ld/%ld=%.0f%%, Rehash=%d, Collisions=%ld/%ld=%.0f%% 6y.6 p"v.6 ?y.6 `#w.6 ,w.6 4|.6 !x.6 y.6 y.6 @Wr.6 xr.6 $w.6 p's.6 !x.6 3w.6 .out .a .ln .o .c .cc .C .cpp .p .f .F .r .y .l .s .S .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo .w .ch .web .sh .elc .el /bin/sh #;"*?[]&|<>(){}$`^~ -c _Jv_RegisterClasses __gmon_start__ libc.so.6 strcpy waitpid getloadavg __strtod_internal stdout getlogin sigemptyset strerror memmove getopt_long getenv __rawmemchr __strtol_internal getpid qsort fgets memcpy setvbuf glob dup2 feof malloc remove optarg opterr readdir fflush fclose lseek sigaddset abort pipe strrchr __ctype_tolower_loc calloc kill ctime dcgettext chdir bsd_signal optind stdin wait ferror strncmp unlink fdopen realloc __strdup sscanf sigaction fread gettimeofday localtime memset opendir __assert_fail strcmp getcwd strsignal getpwnam sprintf setlocale stderr mkstemp vfork __ctype_b_loc globfree fwrite __xstat __errno_location fnmatch __fxstat bindtextdomain _IO_putc fopen _exit __libc_start_main strlen strchr fputs execvp closedir fcntl vfprintf sigprocmask __environ GLIBC_2.3 GLIBC_2.2.5 /lib64/ld-linux-x86-64.so.2 Defined make macro "OMAKE " to "/usr/bin/make --no-print-directory" Defined make rule "libc" with dependencies "${LIBNAME}(${OBJSC})" and code [] Defined make rule "libcu" with dependencies "${LIBNAME}(${OBJSCU})" and code [] Defined make rule "libf" with dependencies "${OBJSF}" and code -${AR} ${AR_FLAGS} ${LIBNAME} ${OBJSF} module multiprocessing found 8 cores: using make_np = 5 Defined make macro "MAKE_NP" to "5" ================================================================================ TEST configureMkdir from config.programs(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/programs.py:111) TESTING: configureMkdir from config.programs(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/programs.py:111) Make sure we can have mkdir automatically make intermediate directories Checking for program /home/dwg/intel/mkl/10.0.011/man/mkdir...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/mkdir...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/mkdir...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/mkdir...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/mkdir...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/mkdir...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/mkdir...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/mkdir...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/mkdir...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/mkdir...not found Checking for program /d/dev01/yikuny/local/jdk/bin/mkdir...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/mkdir...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/mkdir...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/mkdir...not found Checking for program /usr/kerberos/bin/mkdir...not found Checking for program /sbin/mkdir...not found Checking for program /usr/sbin/mkdir...not found Checking for program /bin/mkdir...found sh: /bin/mkdir -p .conftest/tmp Executing: /bin/mkdir -p .conftest/tmp sh: Adding -p flag to /bin/mkdir -p to automatically create directories Defined make macro "MKDIR" to "/bin/mkdir -p" ================================================================================ TEST configurePrograms from config.programs(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/programs.py:133) TESTING: configurePrograms from config.programs(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/programs.py:133) Check for the programs needed to build and run PETSc Checking for program /home/dwg/intel/mkl/10.0.011/man/sh...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/sh...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/sh...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/sh...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/sh...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/sh...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/sh...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/sh...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/sh...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/sh...not found Checking for program /d/dev01/yikuny/local/jdk/bin/sh...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/sh...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/sh...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/sh...not found Checking for program /usr/kerberos/bin/sh...not found Checking for program /sbin/sh...not found Checking for program /usr/sbin/sh...not found Checking for program /bin/sh...found Defined make macro "SHELL" to "/bin/sh" Checking for program /home/dwg/intel/mkl/10.0.011/man/sed...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/sed...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/sed...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/sed...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/sed...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/sed...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/sed...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/sed...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/sed...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/sed...not found Checking for program /d/dev01/yikuny/local/jdk/bin/sed...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/sed...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/sed...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/sed...not found Checking for program /usr/kerberos/bin/sed...not found Checking for program /sbin/sed...not found Checking for program /usr/sbin/sed...not found Checking for program /bin/sed...found Defined make macro "SED" to "/bin/sed" All intermediate test results are stored in /tmp/petsc-WYLoKZ All intermediate test results are stored in /tmp/petsc-WYLoKZ/config.programs sh: /bin/sed -i s/sed/sd/g "/tmp/petsc-WYLoKZ/config.programs/sed1" Executing: /bin/sed -i s/sed/sd/g "/tmp/petsc-WYLoKZ/config.programs/sed1" sh: Adding SEDINPLACE cmd: /bin/sed -i Defined make macro "SEDINPLACE" to "/bin/sed -i" Checking for program /home/dwg/intel/mkl/10.0.011/man/mv...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/mv...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/mv...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/mv...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/mv...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/mv...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/mv...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/mv...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/mv...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/mv...not found Checking for program /d/dev01/yikuny/local/jdk/bin/mv...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/mv...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/mv...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/mv...not found Checking for program /usr/kerberos/bin/mv...not found Checking for program /sbin/mv...not found Checking for program /usr/sbin/mv...not found Checking for program /bin/mv...found Defined make macro "MV" to "/bin/mv" Checking for program /home/dwg/intel/mkl/10.0.011/man/cp...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/cp...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/cp...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/cp...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/cp...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/cp...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/cp...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/cp...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/cp...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/cp...not found Checking for program /d/dev01/yikuny/local/jdk/bin/cp...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/cp...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/cp...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/cp...not found Checking for program /usr/kerberos/bin/cp...not found Checking for program /sbin/cp...not found Checking for program /usr/sbin/cp...not found Checking for program /bin/cp...found Defined make macro "CP" to "/bin/cp" Checking for program /home/dwg/intel/mkl/10.0.011/man/grep...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/grep...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/grep...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/grep...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/grep...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/grep...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/grep...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/grep...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/grep...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/grep...not found Checking for program /d/dev01/yikuny/local/jdk/bin/grep...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/grep...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/grep...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/grep...not found Checking for program /usr/kerberos/bin/grep...not found Checking for program /sbin/grep...not found Checking for program /usr/sbin/grep...not found Checking for program /bin/grep...found Defined make macro "GREP" to "/bin/grep" Checking for program /home/dwg/intel/mkl/10.0.011/man/rm...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/rm...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/rm...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/rm...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/rm...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/rm...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/rm...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/rm...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/rm...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/rm...not found Checking for program /d/dev01/yikuny/local/jdk/bin/rm...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/rm...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/rm...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/rm...not found Checking for program /usr/kerberos/bin/rm...not found Checking for program /sbin/rm...not found Checking for program /usr/sbin/rm...not found Checking for program /bin/rm...found Defined make macro "RM" to "/bin/rm -f" Checking for program /home/dwg/intel/mkl/10.0.011/man/diff...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/diff...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/diff...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/diff...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/diff...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/diff...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/diff...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/diff...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/diff...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/diff...not found Checking for program /d/dev01/yikuny/local/jdk/bin/diff...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/diff...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/diff...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/diff...not found Checking for program /usr/kerberos/bin/diff...not found Checking for program /sbin/diff...not found Checking for program /usr/sbin/diff...not found Checking for program /bin/diff...not found Checking for program /usr/bin/diff...found sh: "/usr/bin/diff" -w "/tmp/petsc-WYLoKZ/config.programs/diff1" "/tmp/petsc-WYLoKZ/config.programs/diff2" Executing: "/usr/bin/diff" -w "/tmp/petsc-WYLoKZ/config.programs/diff1" "/tmp/petsc-WYLoKZ/config.programs/diff2" sh: Defined make macro "DIFF" to "/usr/bin/diff -w" Checking for program /usr/ucb/ps...not found Checking for program /usr/usb/ps...not found Checking for program /home/qlu/ps...not found Checking for program /home/dwg/intel/mkl/10.0.011/man/gzip...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/gzip...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/gzip...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/gzip...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/gzip...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/gzip...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/gzip...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/gzip...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/gzip...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/gzip...not found Checking for program /d/dev01/yikuny/local/jdk/bin/gzip...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/gzip...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/gzip...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/gzip...not found Checking for program /usr/kerberos/bin/gzip...not found Checking for program /sbin/gzip...not found Checking for program /usr/sbin/gzip...not found Checking for program /bin/gzip...found Defined make macro "GZIP" to "/bin/gzip" Defined "HAVE_GZIP" to "1" Defined make macro "PYTHON" to "/d/dev01/qlu/Lib/Python-2.7.2/bin/python" ================================================================================ TEST configureGit from config.sourceControl(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/sourceControl.py:24) TESTING: configureGit from config.sourceControl(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/sourceControl.py:24) Find the Git executable Checking for program /home/dwg/intel/mkl/10.0.011/man/git...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/git...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/git...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/git...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/git...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/git...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/git...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/git...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/git...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/git...not found Checking for program /d/dev01/yikuny/local/jdk/bin/git...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/git...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/git...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/git...not found Checking for program /usr/kerberos/bin/git...not found Checking for program /sbin/git...not found Checking for program /usr/sbin/git...not found Checking for program /bin/git...not found Checking for program /usr/bin/git...not found Checking for program /usr/local/bin/git...not found Checking for program /usr/X11R6/bin/git...not found Checking for program /usr/applinux/bin/git...not found Checking for program /sbin/git...not found Checking for program /apps/cop/bin/git...not found Checking for program /home/shirags/bin/git...not found Checking for program /apps/pe/bin/git...not found Checking for program /apps/cop/bin /git...not found Checking for program /home/qlu/git...not found ================================================================================ TEST configureMercurial from config.sourceControl(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/sourceControl.py:35) TESTING: configureMercurial from config.sourceControl(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/sourceControl.py:35) Find the Mercurial executable Checking for program /home/dwg/intel/mkl/10.0.011/man/hg...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/hg...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/hg...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/hg...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/hg...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/hg...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/hg...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/hg...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/hg...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/hg...not found Checking for program /d/dev01/yikuny/local/jdk/bin/hg...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/hg...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/hg...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/hg...not found Checking for program /usr/kerberos/bin/hg...not found Checking for program /sbin/hg...not found Checking for program /usr/sbin/hg...not found Checking for program /bin/hg...not found Checking for program /usr/bin/hg...not found Checking for program /usr/local/bin/hg...not found Checking for program /usr/X11R6/bin/hg...not found Checking for program /usr/applinux/bin/hg...not found Checking for program /sbin/hg...not found Checking for program /apps/cop/bin/hg...not found Checking for program /home/shirags/bin/hg...not found Checking for program /apps/pe/bin/hg...not found Checking for program /apps/cop/bin /hg...not found Checking for program /home/qlu/hg...not found ================================================================================ TEST configureCVS from config.sourceControl(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/sourceControl.py:46) TESTING: configureCVS from config.sourceControl(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/sourceControl.py:46) Find the CVS executable Checking for program /home/dwg/intel/mkl/10.0.011/man/cvs...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/cvs...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/cvs...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/cvs...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/cvs...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/cvs...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/cvs...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/cvs...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/cvs...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/cvs...not found Checking for program /d/dev01/yikuny/local/jdk/bin/cvs...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/cvs...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/cvs...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/cvs...not found Checking for program /usr/kerberos/bin/cvs...not found Checking for program /sbin/cvs...not found Checking for program /usr/sbin/cvs...not found Checking for program /bin/cvs...not found Checking for program /usr/bin/cvs...found Defined make macro "CVS" to "cvs" sh: cvs --version Executing: cvs --version sh: Concurrent Versions System (CVS) 1.11.17 (client/server) Copyright (c) 1989-2004 Brian Berliner, david d `zoo' zuhn, Jeff Polk, and other authors CVS may be copied only under the terms of the GNU General Public License, a copy of which can be found with the CVS distribution kit. Specify the --help option for further information about CVS ================================================================================ TEST configureSubversion from config.sourceControl(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/sourceControl.py:55) TESTING: configureSubversion from config.sourceControl(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/sourceControl.py:55) Find the Subversion executable Checking for program /home/dwg/intel/mkl/10.0.011/man/svn...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/svn...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/svn...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/svn...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/svn...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/svn...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/svn...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/svn...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/svn...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/svn...not found Checking for program /d/dev01/yikuny/local/jdk/bin/svn...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/svn...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/svn...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/svn...not found Checking for program /usr/kerberos/bin/svn...not found Checking for program /sbin/svn...not found Checking for program /usr/sbin/svn...not found Checking for program /bin/svn...not found Checking for program /usr/bin/svn...found Defined make macro "SVN" to "svn" sh: svn --version -q Executing: svn --version -q sh: 1.1.4 ================================================================================ TEST configureDirectories from PETSc.utilities.petscdir(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/petscdir.py:28) TESTING: configureDirectories from PETSc.utilities.petscdir(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/petscdir.py:28) Checks PETSC_DIR and sets if not set Version Information: #define PETSC_VERSION_RELEASE 1 #define PETSC_VERSION_MAJOR 3 #define PETSC_VERSION_MINOR 4 #define PETSC_VERSION_SUBMINOR 2 #define PETSC_VERSION_PATCH 0 #define PETSC_VERSION_DATE "Jul, 02, 2013" #define PETSC_VERSION_GIT "a071802d3efee8b987703a6ce2cf5d9a25fa8160" #define PETSC_VERSION_DATE_GIT "2013-07-02 09:33:06 -0500" #define PETSC_VERSION_(MAJOR,MINOR,SUBMINOR) \ #define PETSC_VERSION_LT(MAJOR,MINOR,SUBMINOR) \ #define PETSC_VERSION_LE(MAJOR,MINOR,SUBMINOR) \ #define PETSC_VERSION_GT(MAJOR,MINOR,SUBMINOR) \ #define PETSC_VERSION_GE(MAJOR,MINOR,SUBMINOR) \ Defined make macro "DIR" to "/d/dev01/qlu/Lib/petsc-3.4.2-64bit" Defined "DIR" to ""/d/dev01/qlu/Lib/petsc-3.4.2-64bit"" ================================================================================ TEST configureExternalPackagesDir from PETSc.utilities.petscdir(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/petscdir.py:77) TESTING: configureExternalPackagesDir from PETSc.utilities.petscdir(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/petscdir.py:77) ================================================================================ TEST configureInstallationMethod from PETSc.utilities.petscdir(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/petscdir.py:84) TESTING: configureInstallationMethod from PETSc.utilities.petscdir(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/petscdir.py:84) This is a tarball installation ================================================================================ TEST configureETags from PETSc.utilities.Etags(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/Etags.py:27) TESTING: configureETags from PETSc.utilities.Etags(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/Etags.py:27) Determine if etags files exist and try to create otherwise Found etags file ================================================================================ TEST getDatafilespath from PETSc.utilities.dataFilesPath(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/dataFilesPath.py:29) TESTING: getDatafilespath from PETSc.utilities.dataFilesPath(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/dataFilesPath.py:29) Checks what DATAFILESPATH should be Defined make macro "DATAFILESPATH" to "None" ================================================================================ TEST printEnvVariables from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1504) TESTING: printEnvVariables from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1504) **** printenv **** SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: GROUP=landmark INTEL_LICENSE_FILE=/apps/compilers/intel_2013/composer_xe_2013.1.117/Licenses REMOTEHOST=hotcenmb03.conocophillips.net HOSTTYPE=x86_64-linux LESSOPEN=|/usr/bin/lesspipe.sh %s SSH_CLIENT=::ffff:158.139.61.53 38889 22 FC=ifort LOGNAME=qlu USER=qlu INPUTRC=/etc/inputrc HOME=/home/qlu PATH=/home/dwg/intel/mkl/10.0.011/man/:/home/dwg/intel/mkl/10.0.011/include/:/home/dwg/intel/mkl/10.0.011/lib/em64t/:/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64:/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include:/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64:/home/sudanhh/mpich2-1.2.1-install/include:/home/sudanhh/mpich2-1.2.1-install/lib:/home/sudanhh/mpich2-1.2.1-install/bin:/d/dev01/qlu/Lib/Python-2.7.2/bin:/d/dev01/yikuny/local/jdk/bin:/apps/pe/mpich2/mpich2-1.2.1/bin:/home/sudanhh/mpich2_4-install_32/bin:/apps/pe/mpich2/mpich2-install/bin:/usr/kerberos/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/applinux/bin:/sbin:/apps/cop/bin:/home/shirags/bin:/apps/pe/bin:/apps/cop/bin DISPLAY=hotelx02:0.0 CMG_HOME=/apps/stars/2009.10 LANG=en_US.UTF-8 KDEDIR=/usr TERM=xterm SHELL=/bin/tcsh MPIPATH=/home/sudanhh/mpich2-1.2.1-install SHLVL=1 NXDIR=/usr/NX G_BROKEN_FILENAMES=1 LD_LIBRARY_PATH=/apps/compilers/intel/Compiler/11.1/056/lib/intel64:/d/dev01/chungh/lib/xerces-c-3.1.0/lib:/usr/lib:/usr/X11R6/lib:/apps/pe/lib:/usr/lib F90=ifort PE=/apps/pedev OSTYPE=linux JAVA_HOME=/d/dev01/yikuny/local/jdk pw_lic_file=/apps/pe/etc/.passwd_file_honmbl02 VENDOR=unknown QTLIB=/usr/lib64/qt-3.3/lib CC=icc KRB5CCNAME=FILE:/tmp/krb5cc_121589_104RsA HOST=honmbl02 F9X=ifort CMG_LIC_HOST=HOAP133 SSH_CONNECTION=::ffff:158.139.61.53 38889 ::ffff:158.139.44.160 22 F77=ifort CXX=icpc SSH_TTY=/dev/pts/8 HOSTNAME=honmbl02 QTINC=/usr/lib64/qt-3.3/include PWD=/d/dev01/qlu/Lib/petsc-3.4.2-64bit MAIL=/var/spool/mail/qlu MACHTYPE=x86_64 QTDIR=/usr/lib64/qt-3.3 FORT_BUFFERED=TRUE LM_LICENSE_FILE=1701@backuplm:1700@backuplm:/apps/nexus/license.dat ================================================================================ TEST resetEnvCompilers from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1511) TESTING: resetEnvCompilers from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1511) =============================================================================== ***** WARNING: CC (set to icc ) found in environment variables - ignoring use ./configure CC=$CC if you really want to use that value ****** =============================================================================== =============================================================================== ***** WARNING: CXX (set to icpc ) found in environment variables - ignoring use ./configure CXX=$CXX if you really want to use that value ****** =============================================================================== =============================================================================== ***** WARNING: FC (set to ifort ) found in environment variables - ignoring use ./configure FC=$FC if you really want to use that value ****** =============================================================================== =============================================================================== ***** WARNING: F77 (set to ifort ) found in environment variables - ignoring use ./configure F77=$F77 if you really want to use that value ****** =============================================================================== =============================================================================== ***** WARNING: F90 (set to ifort ) found in environment variables - ignoring use ./configure F90=$F90 if you really want to use that value ****** =============================================================================== ================================================================================ TEST checkMPICompilerOverride from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1476) TESTING: checkMPICompilerOverride from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1476) Check if --with-mpi-dir is used along with CC CXX or FC compiler options. This usually prevents mpi compilers from being used - so issue a warning ================================================================================ TEST requireMpiLdPath from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1495) TESTING: requireMpiLdPath from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1495) OpenMPI wrappers require LD_LIBRARY_PATH set ================================================================================ TEST checkVendor from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:399) TESTING: checkVendor from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:399) Determine the compiler vendor Compiler vendor is "" ================================================================================ TEST checkInitialFlags from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:409) TESTING: checkInitialFlags from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:409) Initialize the compiler and linker flags Pushing language C Initialized CFLAGS to Initialized CFLAGS to Initialized LDFLAGS to Popping language C Pushing language CUDA Initialized CUDAFLAGS to Initialized CUDAFLAGS to Initialized LDFLAGS to Popping language CUDA Pushing language Cxx Initialized CXXFLAGS to Initialized CXX_CXXFLAGS to Initialized LDFLAGS to Popping language Cxx Pushing language FC Initialized FFLAGS to Initialized FFLAGS to Initialized LDFLAGS to Popping language FC Initialized CPPFLAGS to Initialized CUDAPPFLAGS to Initialized CXXCPPFLAGS to Initialized CC_LINKER_FLAGS to [] Initialized CXX_LINKER_FLAGS to [] Initialized FC_LINKER_FLAGS to [] Initialized CUDAC_LINKER_FLAGS to [] Initialized sharedLibraryFlags to [] Initialized dynamicLibraryFlags to [] ================================================================================ TEST checkCCompiler from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:525) TESTING: checkCCompiler from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:525) Locate a functional C compiler Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc...found Defined make macro "CC" to "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc" Pushing language C All intermediate test results are stored in /tmp/petsc-WYLoKZ/config.setCompilers sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Pushing language C Popping language C Pushing language CUDA Popping language CUDA Pushing language Cxx Popping language Cxx Pushing language FC Popping language FC Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: Executing: /tmp/petsc-WYLoKZ/config.setCompilers/conftest sh: /tmp/petsc-WYLoKZ/config.setCompilers/conftest Executing: /tmp/petsc-WYLoKZ/config.setCompilers/conftest sh: Popping language C ================================================================================ TEST checkCPreprocessor from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:560) TESTING: checkCPreprocessor from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:560) Locate a functional C preprocessor Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc...found Defined make macro "CPP" to "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -E" Pushing language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -E -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -E -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: # 1 "/tmp/petsc-WYLoKZ/config.setCompilers/conftest.c" # 1 "/tmp/petsc-WYLoKZ/config.setCompilers/confdefs.h" 1 # 2 "/tmp/petsc-WYLoKZ/config.setCompilers/conftest.c" 2 # 1 "/tmp/petsc-WYLoKZ/config.setCompilers/conffix.h" 1 # 3 "/tmp/petsc-WYLoKZ/config.setCompilers/conftest.c" 2 # 1 "/usr/include/stdlib.h" 1 3 # 1 "/usr/include/features.h" 1 3 # 110 "/usr/include/features.h" 3 # 133 "/usr/include/features.h" 3 # 142 "/usr/include/features.h" 3 # 162 "/usr/include/features.h" 3 # 172 "/usr/include/features.h" 3 # 193 "/usr/include/features.h" 3 # 232 "/usr/include/features.h" 3 # 283 "/usr/include/features.h" 3 # 315 "/usr/include/features.h" 3 # 1 "/usr/include/sys/cdefs.h" 1 3 # 57 "/usr/include/sys/cdefs.h" 3 # 70 "/usr/include/sys/cdefs.h" 3 # 95 "/usr/include/sys/cdefs.h" 3 # 110 "/usr/include/sys/cdefs.h" 3 # 120 "/usr/include/sys/cdefs.h" 3 # 151 "/usr/include/sys/cdefs.h" 3 # 175 "/usr/include/sys/cdefs.h" 3 # 219 "/usr/include/sys/cdefs.h" 3 # 249 "/usr/include/sys/cdefs.h" 3 # 288 "/usr/include/sys/cdefs.h" 3 # 320 "/usr/include/features.h" 2 3 # 1 "/usr/include/gnu/stubs.h" 1 3 # 343 "/usr/include/features.h" 2 3 # 26 "/usr/include/stdlib.h" 2 3 # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 49 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 165 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 213 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 typedef unsigned long size_t; # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 279 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 307 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 320 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 typedef int wchar_t; # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 34 "/usr/include/stdlib.h" 2 3 # 95 "/usr/include/stdlib.h" 3 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; # 126 "/usr/include/stdlib.h" 3 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)); extern double atof (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int atoi (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern long int atol (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int atoll (__const char *__nptr) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 180 "/usr/include/stdlib.h" 3 extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 272 "/usr/include/stdlib.h" 3 extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 418 "/usr/include/stdlib.h" 3 extern char *l64a (long int __n) __attribute__ ((__nothrow__)); extern long int a64l (__const char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 1 "/usr/include/sys/types.h" 1 3 # 1 "/usr/include/bits/types.h" 1 3 # 1 "/usr/include/bits/wordsize.h" 1 3 # 29 "/usr/include/bits/types.h" 2 3 # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 49 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 165 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 32 "/usr/include/bits/types.h" 2 3 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; # 71 "/usr/include/bits/types.h" 3 # 1 "/usr/include/bits/typesizes.h" 1 3 # 61 "/usr/include/bits/typesizes.h" 3 # 130 "/usr/include/bits/types.h" 2 3 __extension__ typedef unsigned long int __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef unsigned long int __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned long int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef long int __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef unsigned long int __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef int __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef long int __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef unsigned long int __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef unsigned long int __fsfilcnt64_t; __extension__ typedef long int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef long int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 32 "/usr/include/sys/types.h" 2 3 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; # 60 "/usr/include/sys/types.h" 3 typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; # 98 "/usr/include/sys/types.h" 3 typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 1 "/usr/include/time.h" 1 3 # 33 "/usr/include/time.h" 3 # 52 "/usr/include/time.h" 3 # 68 "/usr/include/time.h" 3 typedef __time_t time_t; typedef __clockid_t clockid_t; typedef __timer_t timer_t; # 126 "/usr/include/time.h" 3 # 416 "/usr/include/time.h" 3 # 134 "/usr/include/sys/types.h" 2 3 # 145 "/usr/include/sys/types.h" 3 # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 49 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 165 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 148 "/usr/include/sys/types.h" 2 3 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 182 "/usr/include/sys/types.h" 3 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 1 "/usr/include/endian.h" 1 3 # 1 "/usr/include/bits/endian.h" 1 3 # 38 "/usr/include/endian.h" 2 3 # 51 "/usr/include/endian.h" 3 # 214 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/sys/select.h" 1 3 # 1 "/usr/include/bits/select.h" 1 3 # 32 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/sigset.h" 1 3 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "/usr/include/sys/select.h" 2 3 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 # 33 "/usr/include/time.h" 3 # 52 "/usr/include/time.h" 3 # 68 "/usr/include/time.h" 3 # 84 "/usr/include/time.h" 3 # 96 "/usr/include/time.h" 3 # 108 "/usr/include/time.h" 3 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 416 "/usr/include/time.h" 3 # 45 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/time.h" 1 3 # 60 "/usr/include/bits/time.h" 3 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "/usr/include/sys/select.h" 2 3 typedef __suseconds_t suseconds_t; typedef long int __fd_mask; typedef struct { __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 127 "/usr/include/sys/select.h" 3 # 217 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/sys/sysmacros.h" 1 3 __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__)); __extension__ extern __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline unsigned int __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline unsigned long long int __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); } # 220 "/usr/include/sys/types.h" 2 3 typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 256 "/usr/include/sys/types.h" 3 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 # 1 "/usr/include/bits/sched.h" 1 3 # 78 "/usr/include/bits/sched.h" 3 struct __sched_param { int __sched_priority; }; # 24 "/usr/include/bits/pthreadtypes.h" 2 3 struct _pthread_fastlock { long int __status; int __spinlock; }; typedef struct _pthread_descr_struct *_pthread_descr; typedef struct __pthread_attr_s { int __detachstate; int __schedpolicy; struct __sched_param __schedparam; int __inheritsched; int __scope; size_t __guardsize; int __stackaddr_set; void *__stackaddr; size_t __stacksize; } pthread_attr_t; __extension__ typedef long long __pthread_cond_align_t; typedef struct { struct _pthread_fastlock __c_lock; _pthread_descr __c_waiting; char __padding[48 - sizeof (struct _pthread_fastlock) - sizeof (_pthread_descr) - sizeof (__pthread_cond_align_t)]; __pthread_cond_align_t __align; } pthread_cond_t; typedef struct { int __dummy; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef struct { int __m_reserved; int __m_count; _pthread_descr __m_owner; int __m_kind; struct _pthread_fastlock __m_lock; } pthread_mutex_t; typedef struct { int __mutexkind; } pthread_mutexattr_t; typedef int pthread_once_t; # 128 "/usr/include/bits/pthreadtypes.h" 3 # 147 "/usr/include/bits/pthreadtypes.h" 3 typedef unsigned long int pthread_t; # 267 "/usr/include/sys/types.h" 2 3 # 434 "/usr/include/stdlib.h" 2 3 extern long int random (void) __attribute__ ((__nothrow__)); extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__)); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) __attribute__ ((__nothrow__)); extern void srand (unsigned int __seed) __attribute__ ((__nothrow__)); extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__)); extern double drand48 (void) __attribute__ ((__nothrow__)); extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) __attribute__ ((__nothrow__)); extern long int nrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) __attribute__ ((__nothrow__)); extern long int jrand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); extern void free (void *__ptr) __attribute__ ((__nothrow__)); extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); # 1 "/usr/include/alloca.h" 1 3 # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 49 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 165 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 26 "/usr/include/alloca.h" 2 3 extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); # 607 "/usr/include/stdlib.h" 2 3 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); # 650 "/usr/include/stdlib.h" 3 extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern char *__secure_getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int setenv (__const char *__name, __const char *__value, int __replace) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)); extern int clearenv (void) __attribute__ ((__nothrow__)); extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))); # 714 "/usr/include/stdlib.h" 3 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern int system (__const char *__command); # 741 "/usr/include/stdlib.h" 3 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) __attribute__ ((__nothrow__)); typedef int (*__compar_fn_t) (__const void *, __const void *); extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))); extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern div_t div (int __numer, int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); # 805 "/usr/include/stdlib.h" 3 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); extern char *gcvt (double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); extern char *qgcvt (long double __value, int __ndigit, char *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)); extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)); extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) __attribute__ ((__nothrow__)); extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 907 "/usr/include/stdlib.h" 3 # 938 "/usr/include/stdlib.h" 3 # 949 "/usr/include/stdlib.h" 3 extern int getloadavg (double __loadavg[], int __nelem) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); # 4 "/tmp/petsc-WYLoKZ/config.setCompilers/conftest.c" 2 Popping language C ================================================================================ TEST checkCUDACompiler from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:594) TESTING: checkCUDACompiler from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:594) Locate a functional CUDA compiler Checking for program /home/dwg/intel/mkl/10.0.011/man/nvcc...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/nvcc...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/nvcc...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/nvcc...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/nvcc...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/nvcc...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/nvcc...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/nvcc...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/nvcc...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/nvcc...not found Checking for program /d/dev01/yikuny/local/jdk/bin/nvcc...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/nvcc...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/nvcc...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/nvcc...not found Checking for program /usr/kerberos/bin/nvcc...not found Checking for program /sbin/nvcc...not found Checking for program /usr/sbin/nvcc...not found Checking for program /bin/nvcc...not found Checking for program /usr/bin/nvcc...not found Checking for program /usr/local/bin/nvcc...not found Checking for program /usr/X11R6/bin/nvcc...not found Checking for program /usr/applinux/bin/nvcc...not found Checking for program /sbin/nvcc...not found Checking for program /apps/cop/bin/nvcc...not found Checking for program /home/shirags/bin/nvcc...not found Checking for program /apps/pe/bin/nvcc...not found Checking for program /apps/cop/bin /nvcc...not found Checking for program /home/qlu/nvcc...not found Checking for program /d/dev01/qlu/Lib/petsc-3.4.2-64bit/bin/win32fe/nvcc...not found Checking for program /home/dwg/intel/mkl/10.0.011/man/nvcc...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/nvcc...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/nvcc...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/nvcc...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/nvcc...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/nvcc...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/nvcc...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/nvcc...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/nvcc...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/nvcc...not found Checking for program /d/dev01/yikuny/local/jdk/bin/nvcc...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/nvcc...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/nvcc...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/nvcc...not found Checking for program /usr/kerberos/bin/nvcc...not found Checking for program /sbin/nvcc...not found Checking for program /usr/sbin/nvcc...not found Checking for program /bin/nvcc...not found Checking for program /usr/bin/nvcc...not found Checking for program /usr/local/bin/nvcc...not found Checking for program /usr/X11R6/bin/nvcc...not found Checking for program /usr/applinux/bin/nvcc...not found Checking for program /sbin/nvcc...not found Checking for program /apps/cop/bin/nvcc...not found Checking for program /home/shirags/bin/nvcc...not found Checking for program /apps/pe/bin/nvcc...not found Checking for program /apps/cop/bin /nvcc...not found Checking for program /home/qlu/nvcc...not found Checking for program /d/dev01/qlu/Lib/petsc-3.4.2-64bit/bin/win32fe/nvcc...not found ================================================================================ TEST checkCUDAPreprocessor from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:632) TESTING: checkCUDAPreprocessor from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:632) Locate a functional CUDA preprocessor ================================================================================ TEST checkCxxCompiler from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:735) TESTING: checkCxxCompiler from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:735) Locate a functional Cxx compiler Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc...found Defined make macro "CXX" to "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc" Pushing language Cxx sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Pushing language C Popping language C Pushing language CUDA Popping language CUDA Pushing language Cxx Popping language Cxx Pushing language FC Popping language FC Pushing language CXX Popping language CXX sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Pushing language CXX Popping language CXX sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: Executing: /tmp/petsc-WYLoKZ/config.setCompilers/conftest sh: /tmp/petsc-WYLoKZ/config.setCompilers/conftest Executing: /tmp/petsc-WYLoKZ/config.setCompilers/conftest sh: Popping language Cxx ================================================================================ TEST checkCxxPreprocessor from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:773) TESTING: checkCxxPreprocessor from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:773) Locate a functional Cxx preprocessor Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc...found Defined make macro "CXXCPP" to "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -E" Pushing language Cxx sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -E -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -E -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc sh: # 1 "/tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc" # 1 "/tmp/petsc-WYLoKZ/config.setCompilers/confdefs.h" 1 # 2 "/tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc" 2 # 1 "/tmp/petsc-WYLoKZ/config.setCompilers/conffix.h" 1 extern "C" { } # 3 "/tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc" 2 # 1 "/usr/include/c++/3.4.6/cstdlib" 1 3 #pragma GCC system_header # 1 "/usr/include/c++/3.4.6/x86_64-redhat-linux/bits/c++config.h" 1 3 # 1 "/usr/include/c++/3.4.6/x86_64-redhat-linux/bits/os_defines.h" 1 3 # 1 "/usr/include/features.h" 1 3 # 110 "/usr/include/features.h" 3 # 133 "/usr/include/features.h" 3 # 142 "/usr/include/features.h" 3 # 162 "/usr/include/features.h" 3 # 172 "/usr/include/features.h" 3 # 193 "/usr/include/features.h" 3 # 232 "/usr/include/features.h" 3 # 283 "/usr/include/features.h" 3 # 315 "/usr/include/features.h" 3 # 1 "/usr/include/sys/cdefs.h" 1 3 # 57 "/usr/include/sys/cdefs.h" 3 # 70 "/usr/include/sys/cdefs.h" 3 # 95 "/usr/include/sys/cdefs.h" 3 # 110 "/usr/include/sys/cdefs.h" 3 # 120 "/usr/include/sys/cdefs.h" 3 # 151 "/usr/include/sys/cdefs.h" 3 # 175 "/usr/include/sys/cdefs.h" 3 # 219 "/usr/include/sys/cdefs.h" 3 # 249 "/usr/include/sys/cdefs.h" 3 # 288 "/usr/include/sys/cdefs.h" 3 # 320 "/usr/include/features.h" 2 3 # 1 "/usr/include/gnu/stubs.h" 1 3 # 343 "/usr/include/features.h" 2 3 # 40 "/usr/include/c++/3.4.6/x86_64-redhat-linux/bits/os_defines.h" 2 3 # 36 "/usr/include/c++/3.4.6/x86_64-redhat-linux/bits/c++config.h" 2 3 namespace __gnu_debug_def { } namespace __gnu_debug { using namespace __gnu_debug_def; } # 77 "/usr/include/c++/3.4.6/x86_64-redhat-linux/bits/c++config.h" 3 # 144 "/usr/include/c++/3.4.6/x86_64-redhat-linux/bits/c++config.h" 3 # 50 "/usr/include/c++/3.4.6/cstdlib" 2 3 # 1 "/usr/include/c++/3.4.6/cstddef" 1 3 #pragma GCC system_header # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 151 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 typedef long ptrdiff_t; # 160 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 213 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 typedef unsigned long size_t; # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 49 "/usr/include/c++/3.4.6/cstddef" 2 3 namespace std { using ::ptrdiff_t; using ::size_t; } # 51 "/usr/include/c++/3.4.6/cstdlib" 2 3 # 1 "/usr/include/stdlib.h" 1 3 # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 49 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 160 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 34 "/usr/include/stdlib.h" 2 3 extern "C" { # 1 "/usr/include/bits/waitflags.h" 1 3 # 43 "/usr/include/stdlib.h" 2 3 # 1 "/usr/include/bits/waitstatus.h" 1 3 # 1 "/usr/include/endian.h" 1 3 # 1 "/usr/include/bits/endian.h" 1 3 # 38 "/usr/include/endian.h" 2 3 # 51 "/usr/include/endian.h" 3 # 66 "/usr/include/bits/waitstatus.h" 2 3 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; # 84 "/usr/include/bits/waitstatus.h" 3 } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; # 97 "/usr/include/bits/waitstatus.h" 3 } __wait_stopped; }; # 44 "/usr/include/stdlib.h" 2 3 # 57 "/usr/include/stdlib.h" 3 # 75 "/usr/include/stdlib.h" 3 # 83 "/usr/include/stdlib.h" 3 # 95 "/usr/include/stdlib.h" 3 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; extern size_t __ctype_get_mb_cur_max (void) throw (); extern double atof (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int atoi (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern long int atol (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); __extension__ extern long long int atoll (__const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); # 1 "/usr/include/xlocale.h" 1 3 typedef struct __locale_struct { struct locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; # 236 "/usr/include/stdlib.h" 2 3 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw () __attribute__ ((__nonnull__ (1))); extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw () __attribute__ ((__nonnull__ (1))); extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw () __attribute__ ((__nonnull__ (1))); extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))); extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))); # 418 "/usr/include/stdlib.h" 3 extern char *l64a (long int __n) throw (); extern long int a64l (__const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 1 "/usr/include/sys/types.h" 1 3 extern "C" { # 1 "/usr/include/bits/types.h" 1 3 # 1 "/usr/include/bits/wordsize.h" 1 3 # 29 "/usr/include/bits/types.h" 2 3 # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 49 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 160 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 32 "/usr/include/bits/types.h" 2 3 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; # 71 "/usr/include/bits/types.h" 3 # 1 "/usr/include/bits/typesizes.h" 1 3 # 61 "/usr/include/bits/typesizes.h" 3 # 130 "/usr/include/bits/types.h" 2 3 __extension__ typedef unsigned long int __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef unsigned long int __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned long int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef long int __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef unsigned long int __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef int __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef long int __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef unsigned long int __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef unsigned long int __fsfilcnt64_t; __extension__ typedef long int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef long int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 32 "/usr/include/sys/types.h" 2 3 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; # 57 "/usr/include/sys/types.h" 3 typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; # 95 "/usr/include/sys/types.h" 3 typedef __off64_t off64_t; typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 1 "/usr/include/time.h" 1 3 # 33 "/usr/include/time.h" 3 # 52 "/usr/include/time.h" 3 typedef __clock_t clock_t; typedef __time_t time_t; typedef __clockid_t clockid_t; typedef __timer_t timer_t; # 126 "/usr/include/time.h" 3 # 416 "/usr/include/time.h" 3 # 134 "/usr/include/sys/types.h" 2 3 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 49 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 160 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 148 "/usr/include/sys/types.h" 2 3 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 182 "/usr/include/sys/types.h" 3 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 1 "/usr/include/sys/select.h" 1 3 # 1 "/usr/include/bits/select.h" 1 3 # 32 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/sigset.h" 1 3 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "/usr/include/sys/select.h" 2 3 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 # 33 "/usr/include/time.h" 3 # 52 "/usr/include/time.h" 3 # 68 "/usr/include/time.h" 3 # 84 "/usr/include/time.h" 3 # 96 "/usr/include/time.h" 3 # 108 "/usr/include/time.h" 3 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 416 "/usr/include/time.h" 3 # 45 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/time.h" 1 3 # 60 "/usr/include/bits/time.h" 3 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "/usr/include/sys/select.h" 2 3 typedef long int __fd_mask; typedef struct { __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; Popping language Cxx ================================================================================ TEST checkFortranCompiler from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:882) TESTING: checkFortranCompiler from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:882) Locate a functional Fortran compiler Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort...found Defined make macro "FC" to "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort" Pushing language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: program main end sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: program main end Pushing language C Popping language C Pushing language CUDA Popping language CUDA Pushing language Cxx Popping language Cxx Pushing language FC Popping language FC Pushing language FC Popping language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: program main end Pushing language FC Popping language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: Executing: /tmp/petsc-WYLoKZ/config.setCompilers/conftest sh: /tmp/petsc-WYLoKZ/config.setCompilers/conftest Executing: /tmp/petsc-WYLoKZ/config.setCompilers/conftest sh: Popping language FC ================================================================================ TEST checkFortranComments from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:901) TESTING: checkFortranComments from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:901) Make sure fortran comment "!" works Pushing language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: ! comment program main end Fortran comments can use ! in column 1 Popping language FC ================================================================================ TEST checkPIC from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:964) TESTING: checkPIC from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:964) Determine the PIC option for each compiler - There needs to be a test that checks that the functionality is actually working Skip checking PIC options on user request ================================================================================ TEST checkLargeFileIO from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:998) TESTING: checkLargeFileIO from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:998) ================================================================================ TEST checkArchiver from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1097) TESTING: checkArchiver from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1097) Check that the archiver exists and can make a library usable by the compiler Pushing language C sh: ar -V Executing: ar -V sh: GNU ar 2.15.92.0.2 20040927 Copyright 2004 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. sh: ar -V Executing: ar -V sh: GNU ar 2.15.92.0.2 20040927 Copyright 2004 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. Defined make macro "FAST_AR_FLAGS" to "Scq" sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int foo(int a) { return a+1; } Checking for program /home/dwg/intel/mkl/10.0.011/man/ar...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/ar...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/ar...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ar...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/ar...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/ar...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/ar...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/ar...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/ar...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/ar...not found Checking for program /d/dev01/yikuny/local/jdk/bin/ar...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/ar...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/ar...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/ar...not found Checking for program /usr/kerberos/bin/ar...not found Checking for program /sbin/ar...not found Checking for program /usr/sbin/ar...not found Checking for program /bin/ar...not found Checking for program /usr/bin/ar...found Defined make macro "AR" to "/usr/bin/ar" Checking for program /home/dwg/intel/mkl/10.0.011/man/ranlib...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/ranlib...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/ranlib...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ranlib...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/ranlib...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/ranlib...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/ranlib...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/ranlib...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/ranlib...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/ranlib...not found Checking for program /d/dev01/yikuny/local/jdk/bin/ranlib...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/ranlib...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/ranlib...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/ranlib...not found Checking for program /usr/kerberos/bin/ranlib...not found Checking for program /sbin/ranlib...not found Checking for program /usr/sbin/ranlib...not found Checking for program /bin/ranlib...not found Checking for program /usr/bin/ranlib...found Defined make macro "RANLIB" to "/usr/bin/ranlib -c" sh: /usr/bin/ar cr /tmp/petsc-WYLoKZ/config.setCompilers/libconf1.a /tmp/petsc-WYLoKZ/config.setCompilers/conf1.o Executing: /usr/bin/ar cr /tmp/petsc-WYLoKZ/config.setCompilers/libconf1.a /tmp/petsc-WYLoKZ/config.setCompilers/conf1.o sh: sh: /usr/bin/ranlib -c /tmp/petsc-WYLoKZ/config.setCompilers/libconf1.a Executing: /usr/bin/ranlib -c /tmp/petsc-WYLoKZ/config.setCompilers/libconf1.a sh: Possible ERROR while running ranlib: error message = {/usr/bin/ranlib: '-c': No such file } Ranlib is not functional with your archiver. Try --with-ranlib=true if ranlib is unnecessary. sh: ar -V Executing: ar -V sh: GNU ar 2.15.92.0.2 20040927 Copyright 2004 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. sh: ar -V Executing: ar -V sh: GNU ar 2.15.92.0.2 20040927 Copyright 2004 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. Defined make macro "FAST_AR_FLAGS" to "Scq" sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int foo(int a) { return a+1; } Checking for program /home/dwg/intel/mkl/10.0.011/man/ar...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/ar...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/ar...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ar...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/ar...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/ar...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/ar...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/ar...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/ar...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/ar...not found Checking for program /d/dev01/yikuny/local/jdk/bin/ar...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/ar...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/ar...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/ar...not found Checking for program /usr/kerberos/bin/ar...not found Checking for program /sbin/ar...not found Checking for program /usr/sbin/ar...not found Checking for program /bin/ar...not found Checking for program /usr/bin/ar...found Defined make macro "AR" to "/usr/bin/ar" Checking for program /home/dwg/intel/mkl/10.0.011/man/ranlib...not found Checking for program /home/dwg/intel/mkl/10.0.011/include/ranlib...not found Checking for program /home/dwg/intel/mkl/10.0.011/lib/em64t/ranlib...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ranlib...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/ranlib...not found Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64/ranlib...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/include/ranlib...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/lib/ranlib...not found Checking for program /home/sudanhh/mpich2-1.2.1-install/bin/ranlib...not found Checking for program /d/dev01/qlu/Lib/Python-2.7.2/bin/ranlib...not found Checking for program /d/dev01/yikuny/local/jdk/bin/ranlib...not found Checking for program /apps/pe/mpich2/mpich2-1.2.1/bin/ranlib...not found Checking for program /home/sudanhh/mpich2_4-install_32/bin/ranlib...not found Checking for program /apps/pe/mpich2/mpich2-install/bin/ranlib...not found Checking for program /usr/kerberos/bin/ranlib...not found Checking for program /sbin/ranlib...not found Checking for program /usr/sbin/ranlib...not found Checking for program /bin/ranlib...not found Checking for program /usr/bin/ranlib...found Defined make macro "RANLIB" to "/usr/bin/ranlib" sh: /usr/bin/ar cr /tmp/petsc-WYLoKZ/config.setCompilers/libconf1.a /tmp/petsc-WYLoKZ/config.setCompilers/conf1.o Executing: /usr/bin/ar cr /tmp/petsc-WYLoKZ/config.setCompilers/libconf1.a /tmp/petsc-WYLoKZ/config.setCompilers/conf1.o sh: sh: /usr/bin/ranlib /tmp/petsc-WYLoKZ/config.setCompilers/libconf1.a Executing: /usr/bin/ranlib /tmp/petsc-WYLoKZ/config.setCompilers/libconf1.a sh: sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" extern int foo(int); int main() { int b = foo(1); if (b); ; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -L/tmp/petsc-WYLoKZ/config.setCompilers -lconf1 Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -L/tmp/petsc-WYLoKZ/config.setCompilers -lconf1 sh: Defined make macro "AR_FLAGS" to "cr" Defined make macro "AR_LIB_SUFFIX" to "a" Popping language C ================================================================================ TEST checkSharedLinker from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1212) TESTING: checkSharedLinker from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1212) Check that the linker can produce shared libraries Pushing language C Popping language C Pushing language CUDA Popping language CUDA Pushing language Cxx Popping language Cxx Pushing language FC Popping language FC Checking shared linker /usr/bin/ar using flags [] Checking for program /usr/bin/ar...found Defined make macro "LD_SHARED" to "/usr/bin/ar" sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" #include int foo(void) {printf("hello"); return 0;} Pushing language C Popping language C sh: /usr/bin/ar cr /tmp/petsc-WYLoKZ/config.setCompilers/libconftest.a /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o ; /usr/bin/ranlib /tmp/petsc-WYLoKZ/config.setCompilers/libconftest.a Executing: /usr/bin/ar cr /tmp/petsc-WYLoKZ/config.setCompilers/libconftest.a /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o ; /usr/bin/ranlib /tmp/petsc-WYLoKZ/config.setCompilers/libconftest.a sh: sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int foo(void); int main() { int ret = foo(); if(ret);; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -L/tmp/petsc-WYLoKZ/config.setCompilers -lconftest Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -L/tmp/petsc-WYLoKZ/config.setCompilers -lconftest sh: Using shared linker /usr/bin/ar with flags [] and library extension a sh: uname -s Executing: uname -s sh: Linux ================================================================================ TEST checkSharedLinkerPaths from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1290) TESTING: checkSharedLinkerPaths from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1290) Determine the shared linker path options - IRIX: -rpath - Linux, OSF: -Wl,-rpath, - Solaris: -R - FreeBSD: -Wl,-R, Pushing language C sh: uname -s Executing: uname -s sh: Linux sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -V Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -V sh: Trying C linker flag -Wl,-rpath, sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: Valid C linker flag -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit Popping language C Pushing language Cxx sh: uname -s Executing: uname -s sh: Linux sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -V Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -V sh: Trying Cxx linker flag -Wl,-rpath, sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Pushing language CXX Popping language CXX sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: Valid Cxx linker flag -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit Popping language Cxx Pushing language FC sh: uname -s Executing: uname -s sh: Linux sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -V Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -V sh: Trying FC linker flag -Wl,-rpath, sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: program main end Pushing language FC Popping language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o sh: Valid FC linker flag -Wl,-rpath,/d/dev01/qlu/Lib/petsc-3.4.2-64bit Popping language FC ================================================================================ TEST checkLibC from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1325) TESTING: checkLibC from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1325) Test whether we need to explicitly include libc in shared linking - Mac OSX requires an explicit reference to libc for shared linking ================================================================================ TEST checkDynamicLinker from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1374) TESTING: checkDynamicLinker from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1374) Check that the linker can dynamicaly load shared libraries Checking for header: dlfcn.h All intermediate test results are stored in /tmp/petsc-WYLoKZ/config.headers sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -E -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.headers /tmp/petsc-WYLoKZ/config.headers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -E -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.headers /tmp/petsc-WYLoKZ/config.headers/conftest.c sh: # 1 "/tmp/petsc-WYLoKZ/config.headers/conftest.c" # 1 "/tmp/petsc-WYLoKZ/config.headers/confdefs.h" 1 # 2 "/tmp/petsc-WYLoKZ/config.headers/conftest.c" 2 # 1 "/tmp/petsc-WYLoKZ/config.headers/conffix.h" 1 # 3 "/tmp/petsc-WYLoKZ/config.headers/conftest.c" 2 # 1 "/usr/include/dlfcn.h" 1 3 # 1 "/usr/include/features.h" 1 3 # 110 "/usr/include/features.h" 3 # 133 "/usr/include/features.h" 3 # 142 "/usr/include/features.h" 3 # 162 "/usr/include/features.h" 3 # 172 "/usr/include/features.h" 3 # 193 "/usr/include/features.h" 3 # 232 "/usr/include/features.h" 3 # 283 "/usr/include/features.h" 3 # 315 "/usr/include/features.h" 3 # 1 "/usr/include/sys/cdefs.h" 1 3 # 57 "/usr/include/sys/cdefs.h" 3 # 70 "/usr/include/sys/cdefs.h" 3 # 95 "/usr/include/sys/cdefs.h" 3 # 110 "/usr/include/sys/cdefs.h" 3 # 120 "/usr/include/sys/cdefs.h" 3 # 151 "/usr/include/sys/cdefs.h" 3 # 175 "/usr/include/sys/cdefs.h" 3 # 219 "/usr/include/sys/cdefs.h" 3 # 249 "/usr/include/sys/cdefs.h" 3 # 288 "/usr/include/sys/cdefs.h" 3 # 320 "/usr/include/features.h" 2 3 # 1 "/usr/include/gnu/stubs.h" 1 3 # 343 "/usr/include/features.h" 2 3 # 24 "/usr/include/dlfcn.h" 2 3 # 1 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 1 3 # 1 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 1 3 # 49 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 95 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 120 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 165 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 213 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 typedef unsigned long size_t; # 237 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 346 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 358 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 391 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 409 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 424 "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h" 3 # 14 "/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/include/stddef.h" 2 3 # 26 "/usr/include/dlfcn.h" 2 3 # 1 "/usr/include/bits/dlfcn.h" 1 3 # 29 "/usr/include/dlfcn.h" 2 3 # 51 "/usr/include/dlfcn.h" 3 extern void *dlopen (__const char *__file, int __mode) __attribute__ ((__nothrow__)); extern int dlclose (void *__handle) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); extern void *dlsym (void *__restrict __handle, __const char *__restrict __name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); # 79 "/usr/include/dlfcn.h" 3 extern char *dlerror (void) __attribute__ ((__nothrow__)); # 171 "/usr/include/dlfcn.h" 3 # 4 "/tmp/petsc-WYLoKZ/config.headers/conftest.c" 2 Defined "HAVE_DLFCN_H" to "1" Checking for function dlopen in library ['dl'] [] Pushing language C All intermediate test results are stored in /tmp/petsc-WYLoKZ/config.libraries sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.libraries/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.libraries/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.libraries/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.libraries/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" /* Override any gcc2 internal prototype to avoid an error. */ char dlopen(); int main() { dlopen() ; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.libraries/conftest /tmp/petsc-WYLoKZ/config.libraries/conftest.o -ldl Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.libraries/conftest /tmp/petsc-WYLoKZ/config.libraries/conftest.o -ldl sh: Defined "HAVE_LIBDL" to "1" Popping language C Checking for function dlsym in library ['dl'] [] Pushing language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.libraries/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.libraries/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.libraries/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.libraries/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" /* Override any gcc2 internal prototype to avoid an error. */ char dlsym(); int main() { dlsym() ; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.libraries/conftest /tmp/petsc-WYLoKZ/config.libraries/conftest.o -ldl Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.libraries/conftest /tmp/petsc-WYLoKZ/config.libraries/conftest.o -ldl sh: Defined "HAVE_LIBDL" to "1" Popping language C Checking for function dlclose in library ['dl'] [] Pushing language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.libraries/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.libraries/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.libraries/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.libraries/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" /* Override any gcc2 internal prototype to avoid an error. */ char dlclose(); int main() { dlclose() ; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.libraries/conftest /tmp/petsc-WYLoKZ/config.libraries/conftest.o -ldl Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.libraries/conftest /tmp/petsc-WYLoKZ/config.libraries/conftest.o -ldl sh: Defined "HAVE_LIBDL" to "1" Popping language C Adding ['dl'] to LIBS sh: uname -s Executing: uname -s sh: Linux Checking dynamic linker /usr/bin/ar using flags [] Checking for program /usr/bin/ar...found Defined make macro "DYNAMICLINKER" to "/usr/bin/ar" sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" #include int foo(void) {printf("test");return 0;} Pushing language C Popping language C Pushing language CUDA Popping language CUDA Pushing language Cxx Popping language Cxx Pushing language FC Popping language FC Pushing language C Popping language C sh: /usr/bin/ar -o /tmp/petsc-WYLoKZ/config.setCompilers/libconftest.so /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl Executing: /usr/bin/ar -o /tmp/petsc-WYLoKZ/config.setCompilers/libconftest.so /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl sh: Possible ERROR while running linker: /usr/bin/ar: no operation specified output: ret = 256 error message = {/usr/bin/ar: no operation specified } Pushing language C Popping language C in /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl Source: #include "confdefs.h" #include "conffix.h" #include int foo(void) {printf("test");return 0;} Checking dynamic linker /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc using flags ['-shared'] Checking for program /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc...found Defined make macro "DYNAMICLINKER" to "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc" sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -shared /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -shared /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl sh: Possible ERROR while running linker: ld: /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o: relocation R_X86_64_PC32 against `__intel_new_proc_init' can not be used when making a shared object; recompile with -fPIC ld: final link failed: Bad value output: ret = 256 error message = {ld: /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o: relocation R_X86_64_PC32 against `__intel_new_proc_init' can not be used when making a shared object; recompile with -fPIC ld: final link failed: Bad value } Pushing language C Popping language C in /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -shared /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Rejecting linker flag -shared due to nonzero status from link sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" #include int foo(void) {printf("test");return 0;} Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/libconftest.so /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/libconftest.so /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl sh: Possible ERROR while running linker: /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o(.text+0x21): In function `_start': : undefined reference to `main' output: ret = 256 error message = {/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o(.text+0x21): In function `_start': : undefined reference to `main' } Pushing language C Popping language C in /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl Source: #include "confdefs.h" #include "conffix.h" #include int foo(void) {printf("test");return 0;} Unable to find working dynamic linker ================================================================================ TEST output from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1420) TESTING: output from config.setCompilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py:1420) Output module data as defines and substitutions Substituting "CC" with "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc" Substituting "CFLAGS" with "" Defined make macro "CC_LINKER_SLFLAG" to "-Wl,-rpath," Substituting "CPP" with "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -E" Substituting "CPPFLAGS" with "" Substituting "CXX" with "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc" Substituting "CXX_CXXFLAGS" with "" Substituting "CXXFLAGS" with "" Substituting "CXX_LINKER_SLFLAG" with "-Wl,-rpath," Substituting "CXXCPP" with "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -E" Substituting "CXXCPPFLAGS" with "" Substituting "FC" with "/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort" Substituting "FFLAGS" with "" Defined make macro "FC_LINKER_SLFLAG" to "-Wl,-rpath," Substituting "LDFLAGS" with "" Substituting "LIBS" with "-ldl " Substituting "SHARED_LIBRARY_FLAG" with "" ================================================================================ TEST configureCompilerFlags from config.compilerFlags(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilerFlags.py:65) TESTING: configureCompilerFlags from config.compilerFlags(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilerFlags.py:65) Get the default compiler flags Pushing language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --version Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --version sh: icc (ICC) 13.0.1 20121010 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. getCompilerVersion: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc icc (ICC) 13.0.1 20121010 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. Trying C compiler flag -wd1572 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -wd1572 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -wd1572 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Added C compiler flag -wd1572 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. Trying C compiler flag -O3 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -wd1572 -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -wd1572 -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Added C compiler flag -O3 Popping language C Pushing language Cxx sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --version Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --version sh: icpc (ICC) 13.0.1 20121010 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. getCompilerVersion: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc icpc (ICC) 13.0.1 20121010 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. Trying Cxx compiler flag -wd1572 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -wd1572 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -wd1572 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Added Cxx compiler flag -wd1572 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. Trying Cxx compiler flag -O3 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icpc -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.cc sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Added Cxx compiler flag -O3 Popping language Cxx Pushing language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --version Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --version sh: ifort (IFORT) 13.0.1 20121010 Copyright (C) 1985-2012 Intel Corporation. All rights reserved. getCompilerVersion: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort ifort (IFORT) 13.0.1 20121010 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help sh: Intel(R) Fortran Compiler Help ============================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: ifort [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a Fortran source (.f .for .ftn .f90 .fpp .F .FOR .F90 .i .i90), assembly (.s .S), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the ifort .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -arch generate specialized code to optimize for processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions SSE3 May generate Intel(R) SSE3, SSE2 and SSE instructions SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2 and SSE instructions SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions AVX May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -f[no-]exceptions enable(DEFAULT)/disable exception handling -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no]pad enable/disable(DEFAULT) changing variable and array memory layout -safe-cray-ptr Cray pointers do not alias with other variables -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -reentrancy specify whether the threaded, reentrant run-time support should be used Keywords: none (same as -noreentrancy), threaded, async -noreentrancy do not use threaded, reentrant run-time support -heap-arrays [n] temporary arrays of minimum size n (in kilobytes) are allocated in heap memory rather than on the stack. If n is not specified, all temporary arrays are allocated in heap memory. -no-heap-arrays temporary arrays are allocated on the stack (DEFAULT) -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -coarray[=shared|distributed] enable/disable(DEFAULT) coarray syntax for data parallel programming. The default is shared-memory; distributed memory is only valid with the Intel(R) Cluster Toolkit -coarray-num-images=n set default number of coarray images -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using SIMD directive -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate -[no-]ftz enable/disable flush denormal results to zero -fpe{0|1|3} specifies program-wide behavior on floating point exceptions -fpe-all={0|1|3} specifies floating point exception behavior on all functions and subroutines. Also sets -assume ieee_fpe_flags -[no]fltconsistency specify that improved floating-point consistency should be used -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -[no]recursive compile all procedures for possible recursive execution Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with ATTRIBUTES INLINE or FORCEINLINE n=2 inline any function, at the compiler's discretion -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -list [] specify that a listing file should be generated -list-line-len=# overrides the default line length (80) in a listing file -list-page-len=# overrides the default page length (66) in a listing file -show controls the contents of the listing file keywords: all, none, [no]include, [no]map, [no]options -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel -debug-parameters [keyword] control output of debug information for PARAMETERS keywords: all, used, none (same as -nodebug-parameters) -nodebug-parameters do not output debug information for PARAMETERS -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -[no]d-lines compile debug statements (indicated by D in column 1) -DD compile debug statements, indicated by D in column 1. This option prevents the definition of a macro named D using the command line -Dname option (use -Dname=n syntax instead) -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used Preprocessor ------------ -D[=] define macro -nodefines, -noD specifies that any -D macros go to the preprocessor only, and not to the compiler -U remove predefined macro -allow nofpp-comments If a Fortran end-of-line comment is seen within a #define, treat it as part of the definition. Default is allow:fpp-comments -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -preprocess-only same as -P -[no]keep keep/remove preprocessed file generated by preprocessor as input to compiler stage. Not affected by -save-temps. Default is -nokeep -fpp[n], -[no]fpp run Fortran preprocessor on source files prior to compilation n=0 disable running the preprocessor, equivalent to nofpp n=1,2,3 run preprocessor -module path specify path where mod files should be placed and first location to look for mod files -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -B find libraries, headers and executables in -[no]gen-dep[=filename] generate dependency information. If no filename is specified, output to stdout -gen-depformat=keyword generate dependency information in the specified format. One of: make, nmake 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 -------- -[no]altparam specify if alternate form of parameter constant declarations (without parenthesis) is recognized. Default is to recognize -assume specify assumptions made by the optimizer and code generator keywords: none, [no]byterecl, [no]buffered_io, [no]bscc (nobscc same as -nbs), [no]cc_omp, [no]minus0, [no]dummy_aliases (same as -common-args), [no]ieee_fpe_flags, [no]fpe_summary, [no]old_boz, [no]old_complex_align, [no]old_logical_ldio, [no]old_ldout_format, [no]old_maxminloc, [no]old_unit_star, [no]old_xor, [no]protect_constants, [no]protect_parens, [no]realloc_lhs, [no]2underscore, [no]underscore (same as -us), [no]std_intent_in, [no]std_mod_proc_name, [no]source_include, [no]split_common,[no]writeable_strings -ccdefault specify default carriage control for units 6 and * keywords: default, fortran, list or none -[no]check check run-time conditions. Default is -nocheck keywords: all (same as -C), none (same as -nocheck), [no]arg_temp_created, [no]bounds (same as -CB), [no]format, [no]output_conversion, [no]pointer (same as -CA), [no]uninit (same as -CU), [no]stack -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_aliases -e03 issue errors for language elements that are not standard in Fortran 2003 (same as -stand f03 -warn stderrors options) -e95 issue errors for language elements that are not standard in Fortran 95 (same as -stand f95 -warn stderrors options) -e90 issue errors for language elements that are not standard in Fortran 90 (same as -stand f90 -warn stderrors options) -[no]extend-source [] specify rightmost column for fixed form sources keywords: 72 (same as -noextend-source and -72), 80 (same as -80), 132 (same as -132. Default if you specify -extend-source without a keyword.) -fixed specify source files are in fixed format. Same as -FI -nofixed indicates free format -free specify source files are in free format. Same as -FR -nofree indicates fixed format -[no]mixed-str-len-arg indicate whether hidden lengths are passed after their character argument or after all arguments. -names specify how source code identifiers and external names are interpreted. keywords: as_is, lowercase, uppercase -[no]pad-source make compiler acknowledge blanks at the end of a line -stand [] specifies level of conformance with ANSI standard to check for. If keyword is not specified, level of conformance is f03 keywords: f90 (same as -std90), f95(same as -std95), f03(same as -std95), none (same as -nostand) -standard-semantics sets assume keywords to conform to the semantics of the f03 standard. May result in performance loss. assume keywords set by -standard-semantics: byterecl, fpe_summary, minus0, noold_maxminloc, noold_unit_star, noold_xor, protect_parens, realloc_lhs, std_intent_in, std_mod_proc_name, noold_ldout_format -syntax-only perform syntax and semantic checking only (no object file produced) Compiler Diagnostics -------------------- -w disable all warnings -W disable warnings (n = 0) or show warnings (n = 1 DEFAULT, same as -warn general) -warn specifies the level of warning messages issued keywords: all, none (same as -nowarn) [no]alignments, [no]declarations, [no]errors, [no]general, [no]ignore_loc, [no]interfaces, [no]stderrors, [no]truncated_source, [no]uncalled, [no]unused, [no]usage -nowarn suppress all warning messages -WB turn a compile-time bounds check into a warning -Winline enable inline diagnostics -[no]traceback specify whether the compiler generates PC correlation data used to display a symbolic traceback rather than a hexadecimal traceback at runtime failure -[no]gen-interfaces[:[no]source] generate interface blocks for all routines in the file. Can be checked using -warn interfaces nosource indicates temporary source files should not be saved -error-limit specify the maximum number of error-level or fatal-level compiler errors allowed -noerror-limit set no maximum number on error-level or fatal-level error messages -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted Miscellaneous ------------- -[no]logo display compiler version information. -nologo disables the output -V display compiler version information -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -what display detailed compiler version information -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -Tf compile file as Fortran source -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -i{2|4|8} set default KIND of integer and logical variables to 2, 4, or 8 -integer-size specifies the default size of integer and logical variables size: 16, 32, 64 -r{8|16} set default size of real to 8 or 16 bytes -real-size specify the size of REAL and COMPLEX declarations, constants, functions, and intrinsics size: 32, 64, 128 -autodouble same as -real-size 64 or -r8 -double-size defines the size of DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics size: 64, 128 -[no]fpconstant extends the precision of single precision constants assigned to double precision variables to double precision -[no]intconstant use Fortran 77 semantics, rather than Fortran 90/95, to determine kind of integer constants -auto make all local variables AUTOMATIC -auto-scalar make scalar local variables AUTOMATIC (DEFAULT) -save save all variables (static allocation) (same as -noauto, opposite of -auto) -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are saved and not initialized -dyncom make given common blocks dynamically-allocated -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -[no]align analyze and reorder memory layout for variables and arrays -align specify how data items are aligned keywords: all (same as -align), none (same as -noalign), [no]commons, [no]dcommons, [no]qcommons, [no]zcommons, rec1byte, rec2byte, rec4byte, rec8byte, rec16byte, rec32byte, rec64byte, array8byte, array16byte, array32byte, array64byte, array128byte, array256byte, [no]records, [no]sequence -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, vaxg -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -fpscomp specify the level of compatibility to adhere to with Fortran PowerStation keywords: all, none (same as -nofpscomp), [no]filesfromcmd, [no]general, [no]ioformat, [no]ldio_spacing, [no]libs, [no]logicals -nofpscomp no specific level of compatibility with Fortran PowerStation -f66, -66 allow extensions that enhance FORTRAN-66 compatibility -f77rtl specify that the Fortran 77 specific run-time support should be used -nof77rtl disables -vms enable VMS I/O statement extensions -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -nofor-main do not link against Fortran main object. Used when linking Fortran objects with C main program -static prevents linking with shared libraries -shared produce a shared object -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -threads specify that multi-threaded libraries should be linked against -nothreads disables multi-threaded libraries -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -fwritable-strings use -assume writeable-strings -1, -66, -onetrip use -f66 -Vaxlib No replacement -automatic use -auto -cm use -warn nousage -dps use -altparam -lowercase use -names lowercase -uppercase use -names uppercase -nus use -assume nounderscore -pthread use -reentrancy threaded -w90, -w95 No replacement -tune use -x -arch pn* use -arch -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help sh: Intel(R) Fortran Compiler Help ============================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: ifort [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a Fortran source (.f .for .ftn .f90 .fpp .F .FOR .F90 .i .i90), assembly (.s .S), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the ifort .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -arch generate specialized code to optimize for processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions SSE3 May generate Intel(R) SSE3, SSE2 and SSE instructions SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2 and SSE instructions SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions AVX May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -f[no-]exceptions enable(DEFAULT)/disable exception handling -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no]pad enable/disable(DEFAULT) changing variable and array memory layout -safe-cray-ptr Cray pointers do not alias with other variables -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -reentrancy specify whether the threaded, reentrant run-time support should be used Keywords: none (same as -noreentrancy), threaded, async -noreentrancy do not use threaded, reentrant run-time support -heap-arrays [n] temporary arrays of minimum size n (in kilobytes) are allocated in heap memory rather than on the stack. If n is not specified, all temporary arrays are allocated in heap memory. -no-heap-arrays temporary arrays are allocated on the stack (DEFAULT) -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -coarray[=shared|distributed] enable/disable(DEFAULT) coarray syntax for data parallel programming. The default is shared-memory; distributed memory is only valid with the Intel(R) Cluster Toolkit -coarray-num-images=n set default number of coarray images -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using SIMD directive -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate -[no-]ftz enable/disable flush denormal results to zero -fpe{0|1|3} specifies program-wide behavior on floating point exceptions -fpe-all={0|1|3} specifies floating point exception behavior on all functions and subroutines. Also sets -assume ieee_fpe_flags -[no]fltconsistency specify that improved floating-point consistency should be used -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -[no]recursive compile all procedures for possible recursive execution Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with ATTRIBUTES INLINE or FORCEINLINE n=2 inline any function, at the compiler's discretion -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -list [] specify that a listing file should be generated -list-line-len=# overrides the default line length (80) in a listing file -list-page-len=# overrides the default page length (66) in a listing file -show controls the contents of the listing file keywords: all, none, [no]include, [no]map, [no]options -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel -debug-parameters [keyword] control output of debug information for PARAMETERS keywords: all, used, none (same as -nodebug-parameters) -nodebug-parameters do not output debug information for PARAMETERS -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -[no]d-lines compile debug statements (indicated by D in column 1) -DD compile debug statements, indicated by D in column 1. This option prevents the definition of a macro named D using the command line -Dname option (use -Dname=n syntax instead) -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used Preprocessor ------------ -D[=] define macro -nodefines, -noD specifies that any -D macros go to the preprocessor only, and not to the compiler -U remove predefined macro -allow nofpp-comments If a Fortran end-of-line comment is seen within a #define, treat it as part of the definition. Default is allow:fpp-comments -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -preprocess-only same as -P -[no]keep keep/remove preprocessed file generated by preprocessor as input to compiler stage. Not affected by -save-temps. Default is -nokeep -fpp[n], -[no]fpp run Fortran preprocessor on source files prior to compilation n=0 disable running the preprocessor, equivalent to nofpp n=1,2,3 run preprocessor -module path specify path where mod files should be placed and first location to look for mod files -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -B find libraries, headers and executables in -[no]gen-dep[=filename] generate dependency information. If no filename is specified, output to stdout -gen-depformat=keyword generate dependency information in the specified format. One of: make, nmake 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 -------- -[no]altparam specify if alternate form of parameter constant declarations (without parenthesis) is recognized. Default is to recognize -assume specify assumptions made by the optimizer and code generator keywords: none, [no]byterecl, [no]buffered_io, [no]bscc (nobscc same as -nbs), [no]cc_omp, [no]minus0, [no]dummy_aliases (same as -common-args), [no]ieee_fpe_flags, [no]fpe_summary, [no]old_boz, [no]old_complex_align, [no]old_logical_ldio, [no]old_ldout_format, [no]old_maxminloc, [no]old_unit_star, [no]old_xor, [no]protect_constants, [no]protect_parens, [no]realloc_lhs, [no]2underscore, [no]underscore (same as -us), [no]std_intent_in, [no]std_mod_proc_name, [no]source_include, [no]split_common,[no]writeable_strings -ccdefault specify default carriage control for units 6 and * keywords: default, fortran, list or none -[no]check check run-time conditions. Default is -nocheck keywords: all (same as -C), none (same as -nocheck), [no]arg_temp_created, [no]bounds (same as -CB), [no]format, [no]output_conversion, [no]pointer (same as -CA), [no]uninit (same as -CU), [no]stack -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_aliases -e03 issue errors for language elements that are not standard in Fortran 2003 (same as -stand f03 -warn stderrors options) -e95 issue errors for language elements that are not standard in Fortran 95 (same as -stand f95 -warn stderrors options) -e90 issue errors for language elements that are not standard in Fortran 90 (same as -stand f90 -warn stderrors options) -[no]extend-source [] specify rightmost column for fixed form sources keywords: 72 (same as -noextend-source and -72), 80 (same as -80), 132 (same as -132. Default if you specify -extend-source without a keyword.) -fixed specify source files are in fixed format. Same as -FI -nofixed indicates free format -free specify source files are in free format. Same as -FR -nofree indicates fixed format -[no]mixed-str-len-arg indicate whether hidden lengths are passed after their character argument or after all arguments. -names specify how source code identifiers and external names are interpreted. keywords: as_is, lowercase, uppercase -[no]pad-source make compiler acknowledge blanks at the end of a line -stand [] specifies level of conformance with ANSI standard to check for. If keyword is not specified, level of conformance is f03 keywords: f90 (same as -std90), f95(same as -std95), f03(same as -std95), none (same as -nostand) -standard-semantics sets assume keywords to conform to the semantics of the f03 standard. May result in performance loss. assume keywords set by -standard-semantics: byterecl, fpe_summary, minus0, noold_maxminloc, noold_unit_star, noold_xor, protect_parens, realloc_lhs, std_intent_in, std_mod_proc_name, noold_ldout_format -syntax-only perform syntax and semantic checking only (no object file produced) Compiler Diagnostics -------------------- -w disable all warnings -W disable warnings (n = 0) or show warnings (n = 1 DEFAULT, same as -warn general) -warn specifies the level of warning messages issued keywords: all, none (same as -nowarn) [no]alignments, [no]declarations, [no]errors, [no]general, [no]ignore_loc, [no]interfaces, [no]stderrors, [no]truncated_source, [no]uncalled, [no]unused, [no]usage -nowarn suppress all warning messages -WB turn a compile-time bounds check into a warning -Winline enable inline diagnostics -[no]traceback specify whether the compiler generates PC correlation data used to display a symbolic traceback rather than a hexadecimal traceback at runtime failure -[no]gen-interfaces[:[no]source] generate interface blocks for all routines in the file. Can be checked using -warn interfaces nosource indicates temporary source files should not be saved -error-limit specify the maximum number of error-level or fatal-level compiler errors allowed -noerror-limit set no maximum number on error-level or fatal-level error messages -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted Miscellaneous ------------- -[no]logo display compiler version information. -nologo disables the output -V display compiler version information -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -what display detailed compiler version information -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -Tf compile file as Fortran source -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -i{2|4|8} set default KIND of integer and logical variables to 2, 4, or 8 -integer-size specifies the default size of integer and logical variables size: 16, 32, 64 -r{8|16} set default size of real to 8 or 16 bytes -real-size specify the size of REAL and COMPLEX declarations, constants, functions, and intrinsics size: 32, 64, 128 -autodouble same as -real-size 64 or -r8 -double-size defines the size of DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics size: 64, 128 -[no]fpconstant extends the precision of single precision constants assigned to double precision variables to double precision -[no]intconstant use Fortran 77 semantics, rather than Fortran 90/95, to determine kind of integer constants -auto make all local variables AUTOMATIC -auto-scalar make scalar local variables AUTOMATIC (DEFAULT) -save save all variables (static allocation) (same as -noauto, opposite of -auto) -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are saved and not initialized -dyncom make given common blocks dynamically-allocated -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -[no]align analyze and reorder memory layout for variables and arrays -align specify how data items are aligned keywords: all (same as -align), none (same as -noalign), [no]commons, [no]dcommons, [no]qcommons, [no]zcommons, rec1byte, rec2byte, rec4byte, rec8byte, rec16byte, rec32byte, rec64byte, array8byte, array16byte, array32byte, array64byte, array128byte, array256byte, [no]records, [no]sequence -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, vaxg -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -fpscomp specify the level of compatibility to adhere to with Fortran PowerStation keywords: all, none (same as -nofpscomp), [no]filesfromcmd, [no]general, [no]ioformat, [no]ldio_spacing, [no]libs, [no]logicals -nofpscomp no specific level of compatibility with Fortran PowerStation -f66, -66 allow extensions that enhance FORTRAN-66 compatibility -f77rtl specify that the Fortran 77 specific run-time support should be used -nof77rtl disables -vms enable VMS I/O statement extensions -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -nofor-main do not link against Fortran main object. Used when linking Fortran objects with C main program -static prevents linking with shared libraries -shared produce a shared object -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -threads specify that multi-threaded libraries should be linked against -nothreads disables multi-threaded libraries -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -fwritable-strings use -assume writeable-strings -1, -66, -onetrip use -f66 -Vaxlib No replacement -automatic use -auto -cm use -warn nousage -dps use -altparam -lowercase use -names lowercase -uppercase use -names uppercase -nus use -assume nounderscore -pthread use -reentrancy threaded -w90, -w95 No replacement -tune use -x -arch pn* use -arch -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help sh: Intel(R) Fortran Compiler Help ============================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: ifort [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a Fortran source (.f .for .ftn .f90 .fpp .F .FOR .F90 .i .i90), assembly (.s .S), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the ifort .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -arch generate specialized code to optimize for processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions SSE3 May generate Intel(R) SSE3, SSE2 and SSE instructions SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2 and SSE instructions SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions AVX May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -f[no-]exceptions enable(DEFAULT)/disable exception handling -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no]pad enable/disable(DEFAULT) changing variable and array memory layout -safe-cray-ptr Cray pointers do not alias with other variables -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -reentrancy specify whether the threaded, reentrant run-time support should be used Keywords: none (same as -noreentrancy), threaded, async -noreentrancy do not use threaded, reentrant run-time support -heap-arrays [n] temporary arrays of minimum size n (in kilobytes) are allocated in heap memory rather than on the stack. If n is not specified, all temporary arrays are allocated in heap memory. -no-heap-arrays temporary arrays are allocated on the stack (DEFAULT) -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -coarray[=shared|distributed] enable/disable(DEFAULT) coarray syntax for data parallel programming. The default is shared-memory; distributed memory is only valid with the Intel(R) Cluster Toolkit -coarray-num-images=n set default number of coarray images -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using SIMD directive -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate -[no-]ftz enable/disable flush denormal results to zero -fpe{0|1|3} specifies program-wide behavior on floating point exceptions -fpe-all={0|1|3} specifies floating point exception behavior on all functions and subroutines. Also sets -assume ieee_fpe_flags -[no]fltconsistency specify that improved floating-point consistency should be used -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -[no]recursive compile all procedures for possible recursive execution Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with ATTRIBUTES INLINE or FORCEINLINE n=2 inline any function, at the compiler's discretion -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -list [] specify that a listing file should be generated -list-line-len=# overrides the default line length (80) in a listing file -list-page-len=# overrides the default page length (66) in a listing file -show controls the contents of the listing file keywords: all, none, [no]include, [no]map, [no]options -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel -debug-parameters [keyword] control output of debug information for PARAMETERS keywords: all, used, none (same as -nodebug-parameters) -nodebug-parameters do not output debug information for PARAMETERS -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -[no]d-lines compile debug statements (indicated by D in column 1) -DD compile debug statements, indicated by D in column 1. This option prevents the definition of a macro named D using the command line -Dname option (use -Dname=n syntax instead) -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used Preprocessor ------------ -D[=] define macro -nodefines, -noD specifies that any -D macros go to the preprocessor only, and not to the compiler -U remove predefined macro -allow nofpp-comments If a Fortran end-of-line comment is seen within a #define, treat it as part of the definition. Default is allow:fpp-comments -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -preprocess-only same as -P -[no]keep keep/remove preprocessed file generated by preprocessor as input to compiler stage. Not affected by -save-temps. Default is -nokeep -fpp[n], -[no]fpp run Fortran preprocessor on source files prior to compilation n=0 disable running the preprocessor, equivalent to nofpp n=1,2,3 run preprocessor -module path specify path where mod files should be placed and first location to look for mod files -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -B find libraries, headers and executables in -[no]gen-dep[=filename] generate dependency information. If no filename is specified, output to stdout -gen-depformat=keyword generate dependency information in the specified format. One of: make, nmake 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 -------- -[no]altparam specify if alternate form of parameter constant declarations (without parenthesis) is recognized. Default is to recognize -assume specify assumptions made by the optimizer and code generator keywords: none, [no]byterecl, [no]buffered_io, [no]bscc (nobscc same as -nbs), [no]cc_omp, [no]minus0, [no]dummy_aliases (same as -common-args), [no]ieee_fpe_flags, [no]fpe_summary, [no]old_boz, [no]old_complex_align, [no]old_logical_ldio, [no]old_ldout_format, [no]old_maxminloc, [no]old_unit_star, [no]old_xor, [no]protect_constants, [no]protect_parens, [no]realloc_lhs, [no]2underscore, [no]underscore (same as -us), [no]std_intent_in, [no]std_mod_proc_name, [no]source_include, [no]split_common,[no]writeable_strings -ccdefault specify default carriage control for units 6 and * keywords: default, fortran, list or none -[no]check check run-time conditions. Default is -nocheck keywords: all (same as -C), none (same as -nocheck), [no]arg_temp_created, [no]bounds (same as -CB), [no]format, [no]output_conversion, [no]pointer (same as -CA), [no]uninit (same as -CU), [no]stack -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_aliases -e03 issue errors for language elements that are not standard in Fortran 2003 (same as -stand f03 -warn stderrors options) -e95 issue errors for language elements that are not standard in Fortran 95 (same as -stand f95 -warn stderrors options) -e90 issue errors for language elements that are not standard in Fortran 90 (same as -stand f90 -warn stderrors options) -[no]extend-source [] specify rightmost column for fixed form sources keywords: 72 (same as -noextend-source and -72), 80 (same as -80), 132 (same as -132. Default if you specify -extend-source without a keyword.) -fixed specify source files are in fixed format. Same as -FI -nofixed indicates free format -free specify source files are in free format. Same as -FR -nofree indicates fixed format -[no]mixed-str-len-arg indicate whether hidden lengths are passed after their character argument or after all arguments. -names specify how source code identifiers and external names are interpreted. keywords: as_is, lowercase, uppercase -[no]pad-source make compiler acknowledge blanks at the end of a line -stand [] specifies level of conformance with ANSI standard to check for. If keyword is not specified, level of conformance is f03 keywords: f90 (same as -std90), f95(same as -std95), f03(same as -std95), none (same as -nostand) -standard-semantics sets assume keywords to conform to the semantics of the f03 standard. May result in performance loss. assume keywords set by -standard-semantics: byterecl, fpe_summary, minus0, noold_maxminloc, noold_unit_star, noold_xor, protect_parens, realloc_lhs, std_intent_in, std_mod_proc_name, noold_ldout_format -syntax-only perform syntax and semantic checking only (no object file produced) Compiler Diagnostics -------------------- -w disable all warnings -W disable warnings (n = 0) or show warnings (n = 1 DEFAULT, same as -warn general) -warn specifies the level of warning messages issued keywords: all, none (same as -nowarn) [no]alignments, [no]declarations, [no]errors, [no]general, [no]ignore_loc, [no]interfaces, [no]stderrors, [no]truncated_source, [no]uncalled, [no]unused, [no]usage -nowarn suppress all warning messages -WB turn a compile-time bounds check into a warning -Winline enable inline diagnostics -[no]traceback specify whether the compiler generates PC correlation data used to display a symbolic traceback rather than a hexadecimal traceback at runtime failure -[no]gen-interfaces[:[no]source] generate interface blocks for all routines in the file. Can be checked using -warn interfaces nosource indicates temporary source files should not be saved -error-limit specify the maximum number of error-level or fatal-level compiler errors allowed -noerror-limit set no maximum number on error-level or fatal-level error messages -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted Miscellaneous ------------- -[no]logo display compiler version information. -nologo disables the output -V display compiler version information -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -what display detailed compiler version information -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -Tf compile file as Fortran source -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -i{2|4|8} set default KIND of integer and logical variables to 2, 4, or 8 -integer-size specifies the default size of integer and logical variables size: 16, 32, 64 -r{8|16} set default size of real to 8 or 16 bytes -real-size specify the size of REAL and COMPLEX declarations, constants, functions, and intrinsics size: 32, 64, 128 -autodouble same as -real-size 64 or -r8 -double-size defines the size of DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics size: 64, 128 -[no]fpconstant extends the precision of single precision constants assigned to double precision variables to double precision -[no]intconstant use Fortran 77 semantics, rather than Fortran 90/95, to determine kind of integer constants -auto make all local variables AUTOMATIC -auto-scalar make scalar local variables AUTOMATIC (DEFAULT) -save save all variables (static allocation) (same as -noauto, opposite of -auto) -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are saved and not initialized -dyncom make given common blocks dynamically-allocated -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -[no]align analyze and reorder memory layout for variables and arrays -align specify how data items are aligned keywords: all (same as -align), none (same as -noalign), [no]commons, [no]dcommons, [no]qcommons, [no]zcommons, rec1byte, rec2byte, rec4byte, rec8byte, rec16byte, rec32byte, rec64byte, array8byte, array16byte, array32byte, array64byte, array128byte, array256byte, [no]records, [no]sequence -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, vaxg -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -fpscomp specify the level of compatibility to adhere to with Fortran PowerStation keywords: all, none (same as -nofpscomp), [no]filesfromcmd, [no]general, [no]ioformat, [no]ldio_spacing, [no]libs, [no]logicals -nofpscomp no specific level of compatibility with Fortran PowerStation -f66, -66 allow extensions that enhance FORTRAN-66 compatibility -f77rtl specify that the Fortran 77 specific run-time support should be used -nof77rtl disables -vms enable VMS I/O statement extensions -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -nofor-main do not link against Fortran main object. Used when linking Fortran objects with C main program -static prevents linking with shared libraries -shared produce a shared object -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -threads specify that multi-threaded libraries should be linked against -nothreads disables multi-threaded libraries -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -fwritable-strings use -assume writeable-strings -1, -66, -onetrip use -f66 -Vaxlib No replacement -automatic use -auto -cm use -warn nousage -dps use -altparam -lowercase use -names lowercase -uppercase use -names uppercase -nus use -assume nounderscore -pthread use -reentrancy threaded -w90, -w95 No replacement -tune use -x -arch pn* use -arch -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help sh: Intel(R) Fortran Compiler Help ============================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: ifort [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a Fortran source (.f .for .ftn .f90 .fpp .F .FOR .F90 .i .i90), assembly (.s .S), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the ifort .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -arch generate specialized code to optimize for processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions SSE3 May generate Intel(R) SSE3, SSE2 and SSE instructions SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2 and SSE instructions SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions AVX May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -f[no-]exceptions enable(DEFAULT)/disable exception handling -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no]pad enable/disable(DEFAULT) changing variable and array memory layout -safe-cray-ptr Cray pointers do not alias with other variables -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -reentrancy specify whether the threaded, reentrant run-time support should be used Keywords: none (same as -noreentrancy), threaded, async -noreentrancy do not use threaded, reentrant run-time support -heap-arrays [n] temporary arrays of minimum size n (in kilobytes) are allocated in heap memory rather than on the stack. If n is not specified, all temporary arrays are allocated in heap memory. -no-heap-arrays temporary arrays are allocated on the stack (DEFAULT) -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -coarray[=shared|distributed] enable/disable(DEFAULT) coarray syntax for data parallel programming. The default is shared-memory; distributed memory is only valid with the Intel(R) Cluster Toolkit -coarray-num-images=n set default number of coarray images -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using SIMD directive -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate -[no-]ftz enable/disable flush denormal results to zero -fpe{0|1|3} specifies program-wide behavior on floating point exceptions -fpe-all={0|1|3} specifies floating point exception behavior on all functions and subroutines. Also sets -assume ieee_fpe_flags -[no]fltconsistency specify that improved floating-point consistency should be used -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -[no]recursive compile all procedures for possible recursive execution Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with ATTRIBUTES INLINE or FORCEINLINE n=2 inline any function, at the compiler's discretion -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -list [] specify that a listing file should be generated -list-line-len=# overrides the default line length (80) in a listing file -list-page-len=# overrides the default page length (66) in a listing file -show controls the contents of the listing file keywords: all, none, [no]include, [no]map, [no]options -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel -debug-parameters [keyword] control output of debug information for PARAMETERS keywords: all, used, none (same as -nodebug-parameters) -nodebug-parameters do not output debug information for PARAMETERS -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -[no]d-lines compile debug statements (indicated by D in column 1) -DD compile debug statements, indicated by D in column 1. This option prevents the definition of a macro named D using the command line -Dname option (use -Dname=n syntax instead) -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used Preprocessor ------------ -D[=] define macro -nodefines, -noD specifies that any -D macros go to the preprocessor only, and not to the compiler -U remove predefined macro -allow nofpp-comments If a Fortran end-of-line comment is seen within a #define, treat it as part of the definition. Default is allow:fpp-comments -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -preprocess-only same as -P -[no]keep keep/remove preprocessed file generated by preprocessor as input to compiler stage. Not affected by -save-temps. Default is -nokeep -fpp[n], -[no]fpp run Fortran preprocessor on source files prior to compilation n=0 disable running the preprocessor, equivalent to nofpp n=1,2,3 run preprocessor -module path specify path where mod files should be placed and first location to look for mod files -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -B find libraries, headers and executables in -[no]gen-dep[=filename] generate dependency information. If no filename is specified, output to stdout -gen-depformat=keyword generate dependency information in the specified format. One of: make, nmake 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 -------- -[no]altparam specify if alternate form of parameter constant declarations (without parenthesis) is recognized. Default is to recognize -assume specify assumptions made by the optimizer and code generator keywords: none, [no]byterecl, [no]buffered_io, [no]bscc (nobscc same as -nbs), [no]cc_omp, [no]minus0, [no]dummy_aliases (same as -common-args), [no]ieee_fpe_flags, [no]fpe_summary, [no]old_boz, [no]old_complex_align, [no]old_logical_ldio, [no]old_ldout_format, [no]old_maxminloc, [no]old_unit_star, [no]old_xor, [no]protect_constants, [no]protect_parens, [no]realloc_lhs, [no]2underscore, [no]underscore (same as -us), [no]std_intent_in, [no]std_mod_proc_name, [no]source_include, [no]split_common,[no]writeable_strings -ccdefault specify default carriage control for units 6 and * keywords: default, fortran, list or none -[no]check check run-time conditions. Default is -nocheck keywords: all (same as -C), none (same as -nocheck), [no]arg_temp_created, [no]bounds (same as -CB), [no]format, [no]output_conversion, [no]pointer (same as -CA), [no]uninit (same as -CU), [no]stack -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_aliases -e03 issue errors for language elements that are not standard in Fortran 2003 (same as -stand f03 -warn stderrors options) -e95 issue errors for language elements that are not standard in Fortran 95 (same as -stand f95 -warn stderrors options) -e90 issue errors for language elements that are not standard in Fortran 90 (same as -stand f90 -warn stderrors options) -[no]extend-source [] specify rightmost column for fixed form sources keywords: 72 (same as -noextend-source and -72), 80 (same as -80), 132 (same as -132. Default if you specify -extend-source without a keyword.) -fixed specify source files are in fixed format. Same as -FI -nofixed indicates free format -free specify source files are in free format. Same as -FR -nofree indicates fixed format -[no]mixed-str-len-arg indicate whether hidden lengths are passed after their character argument or after all arguments. -names specify how source code identifiers and external names are interpreted. keywords: as_is, lowercase, uppercase -[no]pad-source make compiler acknowledge blanks at the end of a line -stand [] specifies level of conformance with ANSI standard to check for. If keyword is not specified, level of conformance is f03 keywords: f90 (same as -std90), f95(same as -std95), f03(same as -std95), none (same as -nostand) -standard-semantics sets assume keywords to conform to the semantics of the f03 standard. May result in performance loss. assume keywords set by -standard-semantics: byterecl, fpe_summary, minus0, noold_maxminloc, noold_unit_star, noold_xor, protect_parens, realloc_lhs, std_intent_in, std_mod_proc_name, noold_ldout_format -syntax-only perform syntax and semantic checking only (no object file produced) Compiler Diagnostics -------------------- -w disable all warnings -W disable warnings (n = 0) or show warnings (n = 1 DEFAULT, same as -warn general) -warn specifies the level of warning messages issued keywords: all, none (same as -nowarn) [no]alignments, [no]declarations, [no]errors, [no]general, [no]ignore_loc, [no]interfaces, [no]stderrors, [no]truncated_source, [no]uncalled, [no]unused, [no]usage -nowarn suppress all warning messages -WB turn a compile-time bounds check into a warning -Winline enable inline diagnostics -[no]traceback specify whether the compiler generates PC correlation data used to display a symbolic traceback rather than a hexadecimal traceback at runtime failure -[no]gen-interfaces[:[no]source] generate interface blocks for all routines in the file. Can be checked using -warn interfaces nosource indicates temporary source files should not be saved -error-limit specify the maximum number of error-level or fatal-level compiler errors allowed -noerror-limit set no maximum number on error-level or fatal-level error messages -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted Miscellaneous ------------- -[no]logo display compiler version information. -nologo disables the output -V display compiler version information -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -what display detailed compiler version information -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -Tf compile file as Fortran source -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -i{2|4|8} set default KIND of integer and logical variables to 2, 4, or 8 -integer-size specifies the default size of integer and logical variables size: 16, 32, 64 -r{8|16} set default size of real to 8 or 16 bytes -real-size specify the size of REAL and COMPLEX declarations, constants, functions, and intrinsics size: 32, 64, 128 -autodouble same as -real-size 64 or -r8 -double-size defines the size of DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics size: 64, 128 -[no]fpconstant extends the precision of single precision constants assigned to double precision variables to double precision -[no]intconstant use Fortran 77 semantics, rather than Fortran 90/95, to determine kind of integer constants -auto make all local variables AUTOMATIC -auto-scalar make scalar local variables AUTOMATIC (DEFAULT) -save save all variables (static allocation) (same as -noauto, opposite of -auto) -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are saved and not initialized -dyncom make given common blocks dynamically-allocated -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -[no]align analyze and reorder memory layout for variables and arrays -align specify how data items are aligned keywords: all (same as -align), none (same as -noalign), [no]commons, [no]dcommons, [no]qcommons, [no]zcommons, rec1byte, rec2byte, rec4byte, rec8byte, rec16byte, rec32byte, rec64byte, array8byte, array16byte, array32byte, array64byte, array128byte, array256byte, [no]records, [no]sequence -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, vaxg -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -fpscomp specify the level of compatibility to adhere to with Fortran PowerStation keywords: all, none (same as -nofpscomp), [no]filesfromcmd, [no]general, [no]ioformat, [no]ldio_spacing, [no]libs, [no]logicals -nofpscomp no specific level of compatibility with Fortran PowerStation -f66, -66 allow extensions that enhance FORTRAN-66 compatibility -f77rtl specify that the Fortran 77 specific run-time support should be used -nof77rtl disables -vms enable VMS I/O statement extensions -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -nofor-main do not link against Fortran main object. Used when linking Fortran objects with C main program -static prevents linking with shared libraries -shared produce a shared object -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -threads specify that multi-threaded libraries should be linked against -nothreads disables multi-threaded libraries -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -fwritable-strings use -assume writeable-strings -1, -66, -onetrip use -f66 -Vaxlib No replacement -automatic use -auto -cm use -warn nousage -dps use -altparam -lowercase use -names lowercase -uppercase use -names uppercase -nus use -assume nounderscore -pthread use -reentrancy threaded -w90, -w95 No replacement -tune use -x -arch pn* use -arch -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. Trying FC compiler flag -O3 sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: program main end Added FC compiler flag -O3 Popping language FC ================================================================================ TEST configureDebugging from PETSc.utilities.debugging(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/debugging.py:25) TESTING: configureDebugging from PETSc.utilities.debugging(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/debugging.py:25) Defined "USE_ERRORCHECKING" to "1" =============================================================================== WARNING! Compiling PETSc with no debugging, this should only be done for timing and production runs. All development should be done when configured using --with-debugging=1 =============================================================================== ================================================================================ TEST configureArchitecture from PETSc.utilities.arch(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/arch.py:32) TESTING: configureArchitecture from PETSc.utilities.arch(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/arch.py:32) Checks PETSC_ARCH and sets if not set Defined "ARCH" to ""arch-intel-mpi-rel-64bit"" ================================================================================ TEST checkSharedDynamicPicOptions from PETSc.utilities.sharedLibraries(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/sharedLibraries.py:42) TESTING: checkSharedDynamicPicOptions from PETSc.utilities.sharedLibraries(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/sharedLibraries.py:42) ================================================================================ TEST configureSharedLibraries from PETSc.utilities.sharedLibraries(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/sharedLibraries.py:63) TESTING: configureSharedLibraries from PETSc.utilities.sharedLibraries(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/sharedLibraries.py:63) Checks whether shared libraries should be used, for which you must - Specify --with-shared-libraries - Have found a working shared linker Defines PETSC_USE_SHARED_LIBRARIES if they are used Defined make rule "shared_arch" with dependencies "" and code [] Defined make macro "BUILDSHAREDLIB" to "no" Defined "HAVE_SHARED_LIBRARIES" to "1" Shared libraries - disabled ================================================================================ TEST configureDynamicLibraries from PETSc.utilities.sharedLibraries(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/sharedLibraries.py:102) TESTING: configureDynamicLibraries from PETSc.utilities.sharedLibraries(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/sharedLibraries.py:102) Checks whether dynamic loading should be used, for which you must - Specify --with-dynamic-loading - Have found a working dynamic linker (with dlfcn.h and libdl) Defines PETSC_USE_DYNAMIC_LIBRARIES if they are used Dynamic loading - disabled ================================================================================ TEST configureBmakeDir from PETSc.utilities.bmakeDir(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/bmakeDir.py:26) TESTING: configureBmakeDir from PETSc.utilities.bmakeDir(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/PETSc/utilities/bmakeDir.py:26) Makes $PETSC_ARCH and subdirectories if it does not exist Changed persistence directory to arch-intel-mpi-rel-64bit/conf sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc --help sh: Intel(R) C++ Compiler Help ========================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: icc [options] file1 [file2 ...] icpc [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii), assembly (.s .S), object (.o), static library (.a), or other linkable file The icpc command uses the same compiler options as the icc command. Invoking the compiler using icpc compiles .c and .i files as C++. Invoking the compiler using icc compiles .c and .i files as C. Using icpc always links in C++ libraries. Using icc only links in C++ libraries if C++ source is provided on the command line. Commonly used options may be placed in the icc .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]builtin disable inline expansion of intrinsic functions -fno-builtin- disable the intrinsic -ffunction-sections separate functions for the linker (COMDAT) -fdata-sections place each data item into its own section -f[no-]defer-pop disable optimizations which may result in deferred clearance of the stack arguments -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -fnon-call-exceptions enable/disable(DEFAULT) code that allows exceptions from trapping instructions to be caught -regcall make __regcall the default calling convention -hotpatch[=n] generate padding bytes for function entries to enable image hotpatching. If specified, use 'n' as the padding. -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]ansi-alias-check enable(DEFAULT)/disable ANSI alias checking when using -ansi-alias -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -[no-]alias-const enable/disable(DEFAULT) a heuristic stating that if two arguments to a function have pointer type, a pointer to const does not alias a pointer to non-const. Also known as the input/output buffer rule, it assumes that input and output buffer arguments do not overlap. -fargument-alias arguments may alias each other and may alias global storage -fargument-noalias arguments do not alias each other but may alias global storage -fargument-noalias-global arguments do not alias each other and do not alias global storage -ftls-model= change thread-local storage model, where can be the following: global-dynamic, local-dynamic, initial-exec or local-exec -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-calloc enable/disable(DEFAULT) calls to fast calloc function -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -ffreestanding compile in a freestanding environment where the standard library may not be present -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -ipp[=] link some or all of the Intel(R) Integrated Performance Primitives (Intel(R) IPP) libraries and bring in the associated headers common - link using the main libraries set. This is the default value when -ipp is specified crypto - link using the main libraries set and the crypto library gen - link using the main libraries set and the fixed size generated functions library -ipp-link= choose whether to link with static or dynamic libraries to support Intel(R) Integrated Performance Primitives (Intel(R) IPP) dynamic - link using the dynamic libraries set. This is the default value when -ipp is specified on Windows static - link using the static libraries set. This is the default value when -ipp is specified on Linux static_thread - link using the optional threaded libraries set Note: these are provided in a separate install kit nonpic - link using the version of the libraries that do not have position independent code nonpic_crypto - link using the crypto library and the version of the libraries that do not have position independent code -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -tbb link to the Intel(R) Threading Building Blocks (Intel(R) TBB) libraries and bring in the associated headers -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -[no-]use-intel-optimized-headers take advantage of the optimized header files -cilk-serialize run a Cilk program as a C/C++ serialized program -[no-]intel-extensions enable(DEFAULT)/disable C/C++ language extensions such as array notation, Intel(R) Cilk(TM) Plus language extensions, and support for decimal floating-point types. -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using simd pragma -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-task choose which OpenMP tasking model to support omp - support OpenMP 3.0 tasking (DEFAULT) intel - support Intel taskqueuing -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access double - rounds intermediates in 53-bit (double) precision extended - rounds intermediates in 64-bit (extended) precision -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -[no-]ftz enable/disable flush denormal results to zero -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -fp-trap=[,,...] control floating point traps at program start. can be of the following values [no]divzero - [Do not] trap on division by zero [no]inexact - [Do not] trap on inexact result [no]invalid - [Do not] trap on invalid operation [no]overflow - [Do not] trap on overflow [no]underflow - [Do not] trap on underflow [no]denormal - [Do not] trap on denormal all - enable trap on all of the above none - trap on none of the above common - trap on most commonly used IEEE traps (invalid, division by zero, overflow) -fp-trap-all=[,,...] control floating point traps in every routine. can be of the values specified in -fp-trap Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with __inline, and perform C++ inlining n=2 inline any function, at the compiler's discretion -f[no-]inline inline functions declared with __inline, and perform C++ inlining -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -fgnu89-inline use C89 semantics for "inline" functions when in C99 mode -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -fasm-blocks enables the use of blocks and entire functions of assembly code within a C or C++ file -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel [no]expr-source-pos -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used -pch-create create precompiled header file -pch-use use precompiled header file -pch enable automatic precompiled header file creation/usage -pch-dir name precompiled header directory -check-pointers= Specifies what type of bounds checking occurs. Possible values are: none - Disables bounds checking. This is the default. rw - Checks bounds for reads and writes through pointers. write - Checks bounds for writes through pointers only. This switch is only valid with Intel(R) Parallel Studio XE -check-pointers-dangling= Specifies what type of dangling pointer checking occurs. Possible values are: none - Disables dangling pointer checking. This is the default. heap - Check dangling references on heap. stack - Check dangling references on stack. all - Check dangling references on both heap and stack. This switch is only valid with Intel(R) Parallel Studio XE -[no-]check-pointers-undimensioned Bounds checking occurs for memory access through arrays that are declared without dimensions. This checking occurs for both dimensioned and undimensioned arrays. This switch is only valid with Intel(R) Parallel Studio XE Preprocessor ------------ -A[] create an assertion having value -C do not strip comments -D[=] define macro -U remove predefined macro -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -nostdinc++ remove standard C++ directories from include file search path -iprefix use with -iwithprefix as a prefix -iwithprefix append to the prefix passed in by -iprefix and put it on the include search path at the end of the include directories -iwithprefixbefore similar to -iwithprefix except the include directory is placed in the same place as -I command line include directories -iquote add directory to the front of the include file search path for files included with quotes, but not brackets -imacros treat as an #include file, but throw away all preprocessing while macros defined remain defined -H print include file order -B find libraries, headers and executables in -M generate makefile dependency information -MM similar to -M, but do not include system header files -MG similar to -M, but treat missing header files as generated files -MD preprocess and compile, generating output file containing dependency information ending with extension .d -MMD similar to -MD, but do not include system header files -MF generate makefile dependency information in file (must specify -M or -MM) -MP add a phony target for each dependency -MT change the default target rule for dependency generation -MQ same as -MT, but quotes special Make characters -dM output macro definitions in effect after preprocessing (use with -E) -dD same as -dM, but output #define directives in preprocessed source -dN same as -dD, but #define directives contain only macro names -gcc Predefine the "__GNUC__", "__GNUC_MINOR__", and "__GNUC_PATCHLEVEL__" macros (DEFAULT) -no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can prevent correct system header compilation, see -gcc-sys -gcc-sys same as -no-gcc, except that the GNU macros are defined only while preprocessing the system include headers -no-icc do not predefine the "__ICC" and "__INTEL_COMPILER" macros. Warning: can prevent correct Intel header compilation -pragma-optimization-level=[Intel|GCC] process #pragma optimize using Intel (DEFAULT) or GCC syntax 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 -------- -std= enable language support for , as described below c99 enable C99 support for C programs c++11 enable C++11 experimental support for C++ programs c++0x same as c++11 -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 c++-cpp-output - C++ pre-processed file assembler - assembly file assembler-with-cpp - assembly file that needs to be preprocessed none - revert to original file extension -ansi equivalent to GNU -ansi -strict-ansi strict ANSI conformance dialect -Zp[n] specify alignment constraint for structures where n=1,2,4,8,16. 16 is the default -fsyntax-only perform syntax and semantic checking only (no object file produced) -trigraphs support ISO C trigraphs (enabled in -ansi mode) -fpermissive allows extensions for some non-conformant code -funsigned-char change default char type to unsigned -fshort-enums allocate as many bytes as needed for enumerated types -f[no-]unsigned-bitfields change default bitfield type to unsigned -fno-rtti disable RTTI support -fno-implicit-templates never emit code for non-inline templates which are instantiated implicitly; only emit code for explicit instantiations -fno-implicit-inline-templates do not emit code for implicit instantiations of inline templates -ftemplate-depth-[n] control the depth in which recursive templates are expanded -[no]align analyze and reorder memory layout for variables and arrays -[no-]restrict enable/disable the 'restrict' keyword for disambiguating pointers -[no-]early-template-check enable/disable (DEFAULT) semantic checking of function template prototypes (before instantiation). Requires -gcc-version=340 or later -help-pragma output supported pragmas and their usage syntax -ffriend-injection inject friend functions into the enclosing namespace. Use -fno-friend-injection to disable -check=[,,...] check run-time conditions. keywords: [no]conversions, [no]stack, [no]uninit Compiler Diagnostics -------------------- -w disable all warnings -w control diagnostics n = 0 enable errors only (same as -w) n = 1 enable warnings and errors (DEFAULT) n = 2 enable verbose warnings, warnings and errors n = 3 enable remarks, verbose warnings, warnings and errors -Wbrief print brief one-line diagnostics -Werror force warnings to be reported as errors -Werror-all force warnings and currently enabled remarks to be reported as errors -Wall enable all warnings -Wremarks enable all remarks and comments -Wcheck enable more strict diagnostics -Weffc++ enable effective C++ diagnostic warnings -wo[,,...] issue diagnostics L1 through LN only once -W[no-]fatal-errors ends compilation after the first error encountered -W[no-]format enable argument checking for calls to printf, scanf, etc -W[no-]format-security warn for uses of format strings and specifiers in printf, scanf, etc that may introduce security problems -W[no-]missing-declarations warn for global functions and variables without prior declaration -W[no-]missing-prototypes warn for missing prototypes -W[no-]strict-aliasing warn for code that might violate the optimizer's strict aliasing rules. Warnings are issued only when using -fstrict-aliasing or -ansi-alias. -W[no-]strict-prototypes warn for functions declared or defined without specified argument types -W[no-]pointer-arith warn for questionable pointer arithmetic -W[no-]uninitialized warn if a variable is used before being initialized -Winline enable inline diagnostics -W[no-]deprecated print warnings related to deprecated features -W[no-]abi warn if generated code is not C++ ABI compliant -Wcontext-limit= set maximum number of template instantiation contexts shown in diagnostic -Wcast-qual warn if cast is used to override pointer type qualifier -W[no-]unused-function warn if declared function is not used -W[no-]unused-parameter warn if declared function parameter is not used -W[no-]unknown-pragmas warn if an unknown #pragma directive is used (DEFAULT) -W[no-]main warn if return type of main is not expected -W[no-]comment[s] warn when comment -W[no-]conversion warn for implicit conversions that may alter a value -W[no-]return-type warn when a function uses the default int return type and warn when a return statement is used in a void function -W[no-]extra-tokens warn about extra tokens after preprocessor directives -W[no-]pragma-once warn about the use of #pragma once -W[no-]invalid-pch warn about problems with existing precompiled headers -W[no-]shadow warn when a variable declaration hides a previous declaration -Woverloaded-virtual warn when a function declaration hides virtual functions from a base class -W[no-]trigraphs warn about the recognition and conversion of trigraphs -W[no-]multichar warn if a multicharacter constant ('ABC') is used -W[no-]overflow warn for operations that could result in integer overflow -Wwrite-strings Issues a diagnostic message if const char * is converted to (non-const) char *. -W[no-]sign-compare warn for comparisons between signed and unsigned values that could produce unintended results after sign conversion -Wp64 print diagnostics for 64-bit porting -W[no-]shorten-64-to-32 warn for values implicitly converted from a 64-bit to a 32-bit type. Similar to -Wp64 -[no]traceback specify whether the compiler generates data to allow for source file traceback information at runtime (only to be used when linking with Fortran programs) -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings thread - enable diagnostics to aid in thread-enabling source port-win - enable diagnostics for GNU extensions that may cause errors when porting to Windows warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted -diag-once [,,...] issue diagnostics v1 through vN only once Miscellaneous ------------- -V display compiler version information -dumpversion display the compiler version number only -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -[no-]multibyte-chars provide support for multi-byte characters -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -freg-struct-return return struct and union values in registers when possible -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -auto-ilp32 specify that the application cannot exceed a 32-bit address space (-ipo[n] required) -auto-p32 instructs the compiler to analyze the program to determine if there are 64-bit pointers that can be safely shrunk to 32-bit pointers. (-ipo required) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility -fabi-version= directs the compiler to select a specific ABI implementation 0 - most recent ABI implementation 1 - g++ 3.2 compatible ABI implementation 2 - most conformant ABI implementation -fms-dialect[=] enable compatibility with a specific Microsoft* Visual Studio version 9 - Microsoft* Visual Studio 2008 compatibility 10 - Microsoft* Visual Studio 2010 compatibility 11 - Microsoft* Visual Studio 2012 compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -pthread use POSIX* thread library for multithreading support -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -u pretend the is undefined -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -A- use -U -c99 use -std=c99 -[no-]check-uninit use -check=[no]uninit -fwritable-strings no replacement -Kc++ use -x c++ -wn use -diag-error-limit -wd use -diag-disable -we use -diag-error -ww use -diag-warning -wr use -diag-remark -wo use -diag-once -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. ================================================================================ TEST checkRestrict from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:134) TESTING: checkRestrict from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:134) Check for the C/CXX restrict keyword Pushing language C All intermediate test results are stored in /tmp/petsc-WYLoKZ/config.compilers sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.compilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -I/tmp/petsc-WYLoKZ/config.compilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.compilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -I/tmp/petsc-WYLoKZ/config.compilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.c sh: Possible ERROR while running compiler: ret = 512 error message = {/tmp/petsc-WYLoKZ/config.compilers/conftest.c(5): error: expected a ";" float * restrict x;; ^ compilation aborted for /tmp/petsc-WYLoKZ/config.compilers/conftest.c (code 2) } Source: #include "confdefs.h" #include "conffix.h" int main() { float * restrict x;; return 0; } sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.compilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -I/tmp/petsc-WYLoKZ/config.compilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.compilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -I/tmp/petsc-WYLoKZ/config.compilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { float * __restrict__ x;; return 0; } compilers: Set C restrict keyword to __restrict__ Defined "C_RESTRICT" to " __restrict__" Popping language C ================================================================================ TEST checkCFormatting from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:306) TESTING: checkCFormatting from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:306) Activate format string checking if using the GNU compilers ================================================================================ TEST checkCStaticInline from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:105) TESTING: checkCStaticInline from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:105) Check for C keyword: static inline Pushing language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.compilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -I/tmp/petsc-WYLoKZ/config.compilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.compilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -I/tmp/petsc-WYLoKZ/config.compilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" static inline int foo(int a) {return a;} int main() { int i = foo(1);; return 0; } compilers: Set C StaticInline keyword to static inline Popping language C Defined "C_STATIC_INLINE" to "static inline" ================================================================================ TEST checkDynamicLoadFlag from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:317) TESTING: checkDynamicLoadFlag from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:317) Checks that dlopen() takes RTLD_XXX, and defines PETSC_HAVE_RTLD_XXX if it does ================================================================================ TEST checkCLibraries from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:161) TESTING: checkCLibraries from config.compilers(/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py:161) Determines the libraries needed to link with C Pushing language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.compilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -I/tmp/petsc-WYLoKZ/config.compilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.c Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -c -o /tmp/petsc-WYLoKZ/config.compilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -I/tmp/petsc-WYLoKZ/config.libraries -I/tmp/petsc-WYLoKZ/config.compilers -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.c sh: Successful compile: Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Pushing language C Popping language C sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.compilers/conftest -v -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.o -ldl Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.compilers/conftest -v -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.o -ldl sh: Possible ERROR while running linker: icc version 13.0.1 (gcc version 3.4.6 compatibility) /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/mcpcom -mP1OPT_version=13.0-intel64 -mGLOB_diag_enable_disable=D:1572 -mGLOB_diag_file=/tmp/petsc-WYLoKZ/config.compilers/conftest.diag -mP1OPT_print_version=FALSE -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_gcc_version=346 "-mGLOB_options_string=-o /tmp/petsc-WYLoKZ/config.compilers/conftest -v -wd1572 -O3 -ldl" -mGLOB_cxx_limited_range=FALSE -mCG_extend_parms=FALSE -mGLOB_compiler_bin_directory=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64 -mGLOB_as_output_backup_file_name=/tmp/iccYuB8N7as_.s -mIPOPT_activate -mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2 -mGLOB_product_id_code=0x22006d93 -mCG_bnl_movbe=T -mP3OPT_use_mspp_call_convention -mPGOPTI_value_profile_use=T -mP2OPT_il0_array_sections=TRUE -mP2OPT_offload_unique_var_string=icc166462192ZINm2v -mGLOB_opt_level=3 -mP2OPT_hlo_level=3 -mP2OPT_hlo -mP2OPT_hpo_rtt_control=0 -mIPOPT_args_in_regs=0 -mP2OPT_disam_assume_nonstd_intent_in=FALSE -mGLOB_imf_mapping_library=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/libiml_attr.so -mIPOPT_link -mIPOPT_ipo_activate -mIPOPT_mo_activate -mIPOPT_source_files_list=/tmp/iccslisqD41j8 -mIPOPT_mo_global_data -mIPOPT_link_script_file=/tmp/iccscriptHfOBOs "-mIPOPT_link_version=2.15.92.0.2 20040927" "-mIPOPT_cmdline_link="/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o" "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crti.o" "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbegin.o" "--eh-frame-hdr" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-o" "/tmp/petsc-WYLoKZ/config.compilers/conftest" "-L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64" "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/" "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64" "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../" "-L/lib64" "-L/lib/" "-L/usr/lib64" "-L/usr/lib" "/tmp/petsc-WYLoKZ/config.compilers/conftest.o" "-ldl" "-Bstatic" "-limf" "-lsvml" "-lirng" "-Bdynamic" "-lm" "-Bstatic" "-lipgo" "-ldecimal" "-Bdynamic" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc" "-lsvml" "-Bdynamic" "-lc" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc_s" "-Bdynamic" "-ldl" "-lc" "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtend.o" "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crtn.o"" -mIPOPT_il_in_obj -mIPOPT_ipo_activate_warn=FALSE -mIPOPT_obj_output_file_name=/tmp/ipo_iccwsnFm9.o -mIPOPT_whole_archive_fixup_file_name=/tmp/iccwarchUqZ8ar "-mGLOB_linker_version=2.15.92.0.2 20040927" -mGLOB_long_size_64 -mGLOB_routine_pointer_size_64 -mGLOB_driver_tempfile_name=/tmp/icctempfile6L3uKL -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_async_unwind_tables=TRUE -mGLOB_obj_output_file=/tmp/ipo_iccwsnFm9.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE -mP1OPT_source_file_name=ipo_out.c /tmp/petsc-WYLoKZ/config.compilers/conftest.o -mIPOPT_object_files=T -mIPOPT_assembly_files=/tmp/iccalisaVHLlO -mIPOPT_generated_tempfiles=/tmp/iccelisBCnkQ8 -mIPOPT_embedded_object_base_name=/tmp/icceobjgKkTkt -mIPOPT_cmdline_link_new_name=/tmp/iccllispWysPN ld /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbegin.o --eh-frame-hdr -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o /tmp/petsc-WYLoKZ/config.compilers/conftest -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/ -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib /tmp/petsc-WYLoKZ/config.compilers/conftest.o -ldl -Bstatic -limf -lsvml -lirng -Bdynamic -lm -Bstatic -lipgo -ldecimal -Bdynamic -lgcc -lgcc_s -Bstatic -lirc -lsvml -Bdynamic -lc -lgcc -lgcc_s -Bstatic -lirc_s -Bdynamic -ldl -lc /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtend.o /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crtn.o output: error message = {icc version 13.0.1 (gcc version 3.4.6 compatibility) /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/mcpcom -mP1OPT_version=13.0-intel64 -mGLOB_diag_enable_disable=D:1572 -mGLOB_diag_file=/tmp/petsc-WYLoKZ/config.compilers/conftest.diag -mP1OPT_print_version=FALSE -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_gcc_version=346 "-mGLOB_options_string=-o /tmp/petsc-WYLoKZ/config.compilers/conftest -v -wd1572 -O3 -ldl" -mGLOB_cxx_limited_range=FALSE -mCG_extend_parms=FALSE -mGLOB_compiler_bin_directory=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64 -mGLOB_as_output_backup_file_name=/tmp/iccYuB8N7as_.s -mIPOPT_activate -mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2 -mGLOB_product_id_code=0x22006d93 -mCG_bnl_movbe=T -mP3OPT_use_mspp_call_convention -mPGOPTI_value_profile_use=T -mP2OPT_il0_array_sections=TRUE -mP2OPT_offload_unique_var_string=icc166462192ZINm2v -mGLOB_opt_level=3 -mP2OPT_hlo_level=3 -mP2OPT_hlo -mP2OPT_hpo_rtt_control=0 -mIPOPT_args_in_regs=0 -mP2OPT_disam_assume_nonstd_intent_in=FALSE -mGLOB_imf_mapping_library=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/libiml_attr.so -mIPOPT_link -mIPOPT_ipo_activate -mIPOPT_mo_activate -mIPOPT_source_files_list=/tmp/iccslisqD41j8 -mIPOPT_mo_global_data -mIPOPT_link_script_file=/tmp/iccscriptHfOBOs "-mIPOPT_link_version=2.15.92.0.2 20040927" "-mIPOPT_cmdline_link="/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o" "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crti.o" "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbegin.o" "--eh-frame-hdr" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-o" "/tmp/petsc-WYLoKZ/config.compilers/conftest" "-L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64" "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/" "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64" "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../" "-L/lib64" "-L/lib/" "-L/usr/lib64" "-L/usr/lib" "/tmp/petsc-WYLoKZ/config.compilers/conftest.o" "-ldl" "-Bstatic" "-limf" "-lsvml" "-lirng" "-Bdynamic" "-lm" "-Bstatic" "-lipgo" "-ldecimal" "-Bdynamic" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc" "-lsvml" "-Bdynamic" "-lc" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc_s" "-Bdynamic" "-ldl" "-lc" "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtend.o" "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crtn.o"" -mIPOPT_il_in_obj -mIPOPT_ipo_activate_warn=FALSE -mIPOPT_obj_output_file_name=/tmp/ipo_iccwsnFm9.o -mIPOPT_whole_archive_fixup_file_name=/tmp/iccwarchUqZ8ar "-mGLOB_linker_version=2.15.92.0.2 20040927" -mGLOB_long_size_64 -mGLOB_routine_pointer_size_64 -mGLOB_driver_tempfile_name=/tmp/icctempfile6L3uKL -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_async_unwind_tables=TRUE -mGLOB_obj_output_file=/tmp/ipo_iccwsnFm9.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE -mP1OPT_source_file_name=ipo_out.c /tmp/petsc-WYLoKZ/config.compilers/conftest.o -mIPOPT_object_files=T -mIPOPT_assembly_files=/tmp/iccalisaVHLlO -mIPOPT_generated_tempfiles=/tmp/iccelisBCnkQ8 -mIPOPT_embedded_object_base_name=/tmp/icceobjgKkTkt -mIPOPT_cmdline_link_new_name=/tmp/iccllispWysPN ld /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbegin.o --eh-frame-hdr -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o /tmp/petsc-WYLoKZ/config.compilers/conftest -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/ -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib /tmp/petsc-WYLoKZ/config.compilers/conftest.o -ldl -Bstatic -limf -lsvml -lirng -Bdynamic -lm -Bstatic -lipgo -ldecimal -Bdynamic -lgcc -lgcc_s -Bstatic -lirc -lsvml -Bdynamic -lc -lgcc -lgcc_s -Bstatic -lirc_s -Bdynamic -ldl -lc /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtend.o /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crtn.o } Pushing language C Popping language C in /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/icc -o /tmp/petsc-WYLoKZ/config.compilers/conftest -v -wd1572 -O3 /tmp/petsc-WYLoKZ/config.compilers/conftest.o -ldl Source: #include "confdefs.h" #include "conffix.h" int main() { ; return 0; } Popping language C compilers: Checking arg icc compilers: Unknown arg icc compilers: Checking arg version compilers: Unknown arg version compilers: Checking arg 13.0.1 compilers: Unknown arg 13.0.1 compilers: Checking arg (gcc compilers: Unknown arg (gcc compilers: Checking arg version compilers: Unknown arg version compilers: Checking arg 3.4.6 compilers: Unknown arg 3.4.6 compilers: Checking arg compatibility) compilers: Unknown arg compatibility) compilers: Checking arg /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/mcpcom compilers: Unknown arg /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/mcpcom compilers: Checking arg -mP1OPT_version=13.0-intel64 compilers: Unknown arg -mP1OPT_version=13.0-intel64 compilers: Checking arg -mGLOB_diag_enable_disable=D:1572 compilers: Unknown arg -mGLOB_diag_enable_disable=D:1572 compilers: Checking arg -mGLOB_diag_file=/tmp/petsc-WYLoKZ/config.compilers/conftest.diag compilers: Unknown arg -mGLOB_diag_file=/tmp/petsc-WYLoKZ/config.compilers/conftest.diag compilers: Checking arg -mP1OPT_print_version=FALSE compilers: Unknown arg -mP1OPT_print_version=FALSE compilers: Checking arg -mCG_use_gas_got_workaround=F compilers: Unknown arg -mCG_use_gas_got_workaround=F compilers: Checking arg -mP2OPT_align_option_used=TRUE compilers: Unknown arg -mP2OPT_align_option_used=TRUE compilers: Checking arg -mGLOB_gcc_version=346 compilers: Unknown arg -mGLOB_gcc_version=346 compilers: Checking arg "-mGLOB_options_string=-o compilers: Unknown arg "-mGLOB_options_string=-o compilers: Checking arg /tmp/petsc-WYLoKZ/config.compilers/conftest compilers: Unknown arg /tmp/petsc-WYLoKZ/config.compilers/conftest compilers: Checking arg -v compilers: Unknown arg -v compilers: Checking arg -wd1572 compilers: Unknown arg -wd1572 compilers: Checking arg -O3 compilers: Unknown arg -O3 compilers: Checking arg -ldl" compilers: Found library : -ldl compilers: Checking arg -mGLOB_cxx_limited_range=FALSE compilers: Unknown arg -mGLOB_cxx_limited_range=FALSE compilers: Checking arg -mCG_extend_parms=FALSE compilers: Unknown arg -mCG_extend_parms=FALSE compilers: Checking arg -mGLOB_compiler_bin_directory=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64 compilers: Unknown arg -mGLOB_compiler_bin_directory=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64 compilers: Checking arg -mGLOB_as_output_backup_file_name=/tmp/iccYuB8N7as_.s compilers: Unknown arg -mGLOB_as_output_backup_file_name=/tmp/iccYuB8N7as_.s compilers: Checking arg -mIPOPT_activate compilers: Unknown arg -mIPOPT_activate compilers: Checking arg -mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2 compilers: Unknown arg -mGLOB_machine_model=GLOB_MACHINE_MODEL_EFI2 compilers: Checking arg -mGLOB_product_id_code=0x22006d93 compilers: Unknown arg -mGLOB_product_id_code=0x22006d93 compilers: Checking arg -mCG_bnl_movbe=T compilers: Unknown arg -mCG_bnl_movbe=T compilers: Checking arg -mP3OPT_use_mspp_call_convention compilers: Unknown arg -mP3OPT_use_mspp_call_convention compilers: Checking arg -mPGOPTI_value_profile_use=T compilers: Unknown arg -mPGOPTI_value_profile_use=T compilers: Checking arg -mP2OPT_il0_array_sections=TRUE compilers: Unknown arg -mP2OPT_il0_array_sections=TRUE compilers: Checking arg -mP2OPT_offload_unique_var_string=icc166462192ZINm2v compilers: Unknown arg -mP2OPT_offload_unique_var_string=icc166462192ZINm2v compilers: Checking arg -mGLOB_opt_level=3 compilers: Unknown arg -mGLOB_opt_level=3 compilers: Checking arg -mP2OPT_hlo_level=3 compilers: Unknown arg -mP2OPT_hlo_level=3 compilers: Checking arg -mP2OPT_hlo compilers: Unknown arg -mP2OPT_hlo compilers: Checking arg -mP2OPT_hpo_rtt_control=0 compilers: Unknown arg -mP2OPT_hpo_rtt_control=0 compilers: Checking arg -mIPOPT_args_in_regs=0 compilers: Unknown arg -mIPOPT_args_in_regs=0 compilers: Checking arg -mP2OPT_disam_assume_nonstd_intent_in=FALSE compilers: Unknown arg -mP2OPT_disam_assume_nonstd_intent_in=FALSE compilers: Checking arg -mGLOB_imf_mapping_library=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/libiml_attr.so compilers: Unknown arg -mGLOB_imf_mapping_library=/apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/libiml_attr.so compilers: Checking arg -mIPOPT_link compilers: Unknown arg -mIPOPT_link compilers: Checking arg -mIPOPT_ipo_activate compilers: Unknown arg -mIPOPT_ipo_activate compilers: Checking arg -mIPOPT_mo_activate compilers: Unknown arg -mIPOPT_mo_activate compilers: Checking arg -mIPOPT_source_files_list=/tmp/iccslisqD41j8 compilers: Unknown arg -mIPOPT_source_files_list=/tmp/iccslisqD41j8 compilers: Checking arg -mIPOPT_mo_global_data compilers: Unknown arg -mIPOPT_mo_global_data compilers: Checking arg -mIPOPT_link_script_file=/tmp/iccscriptHfOBOs compilers: Unknown arg -mIPOPT_link_script_file=/tmp/iccscriptHfOBOs compilers: Checking arg "-mIPOPT_link_version=2.15.92.0.2 compilers: Unknown arg "-mIPOPT_link_version=2.15.92.0.2 compilers: Checking arg 20040927" compilers: Unknown arg 20040927 compilers: Checking arg "-mIPOPT_cmdline_link="/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o" compilers: Unknown arg -mIPOPT_cmdline_link="/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o compilers: Checking arg "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crti.o" compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crti.o compilers: Checking arg "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbegin.o" compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbegin.o compilers: Checking arg "--eh-frame-hdr" compilers: Unknown arg --eh-frame-hdr compilers: Checking arg "-dynamic-linker" compilers: Unknown arg -dynamic-linker compilers: Checking arg "/lib64/ld-linux-x86-64.so.2" compilers: Unknown arg /lib64/ld-linux-x86-64.so.2 compilers: Checking arg "-o" compilers: Unknown arg -o compilers: Checking arg "/tmp/petsc-WYLoKZ/config.compilers/conftest" compilers: Unknown arg /tmp/petsc-WYLoKZ/config.compilers/conftest compilers: Checking arg "-L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64" compilers: Found library directory: -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 compilers: Checking arg "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/" compilers: Found library directory: -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 compilers: Checking arg "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64" compilers: Checking arg "-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../" compilers: Checking arg "-L/lib64" compilers: Checking arg "-L/lib/" compilers: Checking arg "-L/usr/lib64" compilers: Checking arg "-L/usr/lib" compilers: Checking arg "/tmp/petsc-WYLoKZ/config.compilers/conftest.o" compilers: Unknown arg /tmp/petsc-WYLoKZ/config.compilers/conftest.o compilers: Checking arg "-ldl" compilers: Checking arg "-Bstatic" compilers: Unknown arg -Bstatic compilers: Checking arg "-limf" compilers: Found library : -limf compilers: Checking arg "-lsvml" compilers: Found library : -lsvml compilers: Checking arg "-lirng" compilers: Found library : -lirng compilers: Checking arg "-Bdynamic" compilers: Unknown arg -Bdynamic compilers: Checking arg "-lm" compilers: Checking arg "-Bstatic" compilers: Unknown arg -Bstatic compilers: Checking arg "-lipgo" compilers: Found library : -lipgo compilers: Checking arg "-ldecimal" compilers: Found library : -ldecimal compilers: Checking arg "-Bdynamic" compilers: Unknown arg -Bdynamic compilers: Checking arg "-lgcc" compilers: Skipping system library: -lgcc compilers: Checking arg "-lgcc_s" compilers: Found library : -lgcc_s compilers: Checking arg "-Bstatic" compilers: Unknown arg -Bstatic compilers: Checking arg "-lirc" compilers: Found library : -lirc compilers: Checking arg "-lsvml" compilers: Checking arg "-Bdynamic" compilers: Unknown arg -Bdynamic compilers: Checking arg "-lc" compilers: Skipping system library: -lc compilers: Checking arg "-lgcc" compilers: Skipping system library: -lgcc compilers: Checking arg "-lgcc_s" compilers: Checking arg "-Bstatic" compilers: Unknown arg -Bstatic compilers: Checking arg "-lirc_s" compilers: Found library : -lirc_s compilers: Checking arg "-Bdynamic" compilers: Unknown arg -Bdynamic compilers: Checking arg "-ldl" compilers: Checking arg "-lc" compilers: Skipping system library: -lc compilers: Checking arg "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtend.o" compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtend.o compilers: Checking arg "/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crtn.o"" compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crtn.o compilers: Checking arg -mIPOPT_il_in_obj compilers: Unknown arg -mIPOPT_il_in_obj compilers: Checking arg -mIPOPT_ipo_activate_warn=FALSE compilers: Unknown arg -mIPOPT_ipo_activate_warn=FALSE compilers: Checking arg -mIPOPT_obj_output_file_name=/tmp/ipo_iccwsnFm9.o compilers: Unknown arg -mIPOPT_obj_output_file_name=/tmp/ipo_iccwsnFm9.o compilers: Checking arg -mIPOPT_whole_archive_fixup_file_name=/tmp/iccwarchUqZ8ar compilers: Unknown arg -mIPOPT_whole_archive_fixup_file_name=/tmp/iccwarchUqZ8ar compilers: Checking arg "-mGLOB_linker_version=2.15.92.0.2 compilers: Unknown arg "-mGLOB_linker_version=2.15.92.0.2 compilers: Checking arg 20040927" compilers: Unknown arg 20040927 compilers: Checking arg -mGLOB_long_size_64 compilers: Unknown arg -mGLOB_long_size_64 compilers: Checking arg -mGLOB_routine_pointer_size_64 compilers: Unknown arg -mGLOB_routine_pointer_size_64 compilers: Checking arg -mGLOB_driver_tempfile_name=/tmp/icctempfile6L3uKL compilers: Unknown arg -mGLOB_driver_tempfile_name=/tmp/icctempfile6L3uKL compilers: Checking arg -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS compilers: Unknown arg -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS compilers: Checking arg -mGLOB_async_unwind_tables=TRUE compilers: Unknown arg -mGLOB_async_unwind_tables=TRUE compilers: Checking arg -mGLOB_obj_output_file=/tmp/ipo_iccwsnFm9.o compilers: Unknown arg -mGLOB_obj_output_file=/tmp/ipo_iccwsnFm9.o compilers: Checking arg -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE compilers: Unknown arg -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE compilers: Checking arg -mP1OPT_source_file_name=ipo_out.c compilers: Unknown arg -mP1OPT_source_file_name=ipo_out.c compilers: Checking arg /tmp/petsc-WYLoKZ/config.compilers/conftest.o compilers: Unknown arg /tmp/petsc-WYLoKZ/config.compilers/conftest.o compilers: Checking arg -mIPOPT_object_files=T compilers: Unknown arg -mIPOPT_object_files=T compilers: Checking arg -mIPOPT_assembly_files=/tmp/iccalisaVHLlO compilers: Unknown arg -mIPOPT_assembly_files=/tmp/iccalisaVHLlO compilers: Checking arg -mIPOPT_generated_tempfiles=/tmp/iccelisBCnkQ8 compilers: Unknown arg -mIPOPT_generated_tempfiles=/tmp/iccelisBCnkQ8 compilers: Checking arg -mIPOPT_embedded_object_base_name=/tmp/icceobjgKkTkt compilers: Unknown arg -mIPOPT_embedded_object_base_name=/tmp/icceobjgKkTkt compilers: Checking arg -mIPOPT_cmdline_link_new_name=/tmp/iccllispWysPN compilers: Unknown arg -mIPOPT_cmdline_link_new_name=/tmp/iccllispWysPN compilers: Checking arg ld compilers: Unknown arg ld compilers: Checking arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crt1.o compilers: Checking arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crti.o compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crti.o compilers: Checking arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbegin.o compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbegin.o compilers: Checking arg --eh-frame-hdr compilers: Unknown arg --eh-frame-hdr compilers: Checking arg -dynamic-linker compilers: Unknown arg -dynamic-linker compilers: Checking arg /lib64/ld-linux-x86-64.so.2 compilers: Unknown arg /lib64/ld-linux-x86-64.so.2 compilers: Checking arg -o compilers: Unknown arg -o compilers: Checking arg /tmp/petsc-WYLoKZ/config.compilers/conftest compilers: Unknown arg /tmp/petsc-WYLoKZ/config.compilers/conftest compilers: Checking arg -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 compilers: Found library directory: -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 compilers: Checking arg -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/ compilers: Found library directory: -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 compilers: Checking arg -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64 compilers: Checking arg -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../ compilers: Checking arg -L/lib64 compilers: Checking arg -L/lib/ compilers: Checking arg -L/usr/lib64 compilers: Checking arg -L/usr/lib compilers: Checking arg /tmp/petsc-WYLoKZ/config.compilers/conftest.o compilers: Unknown arg /tmp/petsc-WYLoKZ/config.compilers/conftest.o compilers: Checking arg -ldl compilers: Checking arg -Bstatic compilers: Unknown arg -Bstatic compilers: Checking arg -limf compilers: Checking arg -lsvml compilers: Checking arg -lirng compilers: Checking arg -Bdynamic compilers: Unknown arg -Bdynamic compilers: Checking arg -lm compilers: Checking arg -Bstatic compilers: Unknown arg -Bstatic compilers: Checking arg -lipgo compilers: Checking arg -ldecimal compilers: Checking arg -Bdynamic compilers: Unknown arg -Bdynamic compilers: Checking arg -lgcc compilers: Skipping system library: -lgcc compilers: Checking arg -lgcc_s compilers: Checking arg -Bstatic compilers: Unknown arg -Bstatic compilers: Checking arg -lirc compilers: Checking arg -lsvml compilers: Checking arg -Bdynamic compilers: Unknown arg -Bdynamic compilers: Checking arg -lc compilers: Skipping system library: -lc compilers: Checking arg -lgcc compilers: Skipping system library: -lgcc compilers: Checking arg -lgcc_s compilers: Checking arg -Bstatic compilers: Unknown arg -Bstatic compilers: Checking arg -lirc_s compilers: Checking arg -Bdynamic compilers: Unknown arg -Bdynamic compilers: Checking arg -ldl compilers: Checking arg -lc compilers: Skipping system library: -lc compilers: Checking arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtend.o compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtend.o compilers: Checking arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crtn.o compilers: Unknown arg /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../lib64/crtn.o compilers: Libraries needed to link C code with another linker: ['-ldl', '-L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64', '-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6', '-limf', '-lsvml', '-lirng', '-lipgo', '-ldecimal', '-lgcc_s', '-lirc', '-lirc_s', '-L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64', '-L/usr/lib/gcc/x86_64-redhat-linux/3.4.6'] compilers: Check that C libraries can be used from Fortran Pushing language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: program main end sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: program main end Pushing language FC Popping language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -limf -lsvml -lirng -lipgo -ldecimal -lgcc_s -lirc -lirc_s -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -ldl Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -limf -lsvml -lirng -lipgo -ldecimal -lgcc_s -lirc -lirc_s -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -ldl sh: sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -c -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -I/tmp/petsc-WYLoKZ/config.setCompilers -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.F sh: Successful compile: Source: program main end Pushing language FC Popping language FC sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -limf -lsvml -lirng -lipgo -ldecimal -lgcc_s -lirc -lirc_s -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -ldl Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort -o /tmp/petsc-WYLoKZ/config.setCompilers/conftest -O3 /tmp/petsc-WYLoKZ/config.setCompilers/conftest.o -ldl -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -limf -lsvml -lirng -lipgo -ldecimal -lgcc_s -lirc -lirc_s -L/apps/compilers/intel_2013/composer_xe_2013.1.117/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.6 -ldl sh: Executing: /tmp/petsc-WYLoKZ/config.setCompilers/conftest sh: /tmp/petsc-WYLoKZ/config.setCompilers/conftest Executing: /tmp/petsc-WYLoKZ/config.setCompilers/conftest sh: ERROR while running executable: Could not execute "/tmp/petsc-WYLoKZ/config.setCompilers/conftest": /tmp/petsc-WYLoKZ/config.setCompilers/conftest: error while loading shared libraries: libirng.so: cannot open shared object file: No such file or directory sh: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help Executing: /apps/compilers/intel_2013/composer_xe_2013.1.117/bin/intel64/ifort --help sh: Intel(R) Fortran Compiler Help ============================== Intel(R) Compiler includes compiler options that optimize for instruction sets that are available in both Intel(R) and non-Intel microprocessors, but may perform additional optimizations for Intel microprocessors than for non-Intel microprocessors. In addition, certain compiler options for Intel(R) Compiler are reserved for Intel microprocessors. For a detailed description of these compiler options, including the instructions they implicate, please refer to "Intel(R) Compiler User and Reference Guides > Compiler Options." usage: ifort [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a Fortran source (.f .for .ftn .f90 .fpp .F .FOR .F90 .i .i90), assembly (.s .S), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the ifort .cfg file. Some options listed are only available on a specific system i32 indicates the feature is available on systems based on IA-32 architecture i64em indicates the feature is available on systems using Intel(R) 64 architecture Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit -O2 optimize for maximum speed (DEFAULT) -O3 optimize for maximum speed and enable more aggressive optimizations that may not improve performance on some programs -O same as -O2 -Os enable speed optimizations, but disable some optimizations which increase code size for small speed benefit -O0 disable optimizations -fast enable -xHOST -O3 -ipo -no-prec-div -static options set by -fast cannot be overridden with the exception of -xHOST, list options separately to change behavior -Ofast enable -O3 -no-prec-div optimizations -fno-alias assume no aliasing in program -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -nolib-inline disable inline expansion of intrinsic functions -f[no-]optimize-sibling-calls Optimize sibling and tail recursive calls. Enabled at levels -O2, -O3, -Os. Code Generation --------------- -x generate specialized code to run exclusively on processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. Optimizes for the Intel NetBurst(R) microarchitecture. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the enhanced Pentium(R) M processor microarchitecture and Intel NetBurst(R) microarchitecture. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Core(TM) microarchitecture. SSE4.1 May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator instructions for Intel processors. May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for Intel(R) 45nm Hi-k next generation Intel Core(TM) microarchitecture. SSE4.2 May generate Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions supported by Intel(R) Core(TM) i7 processors. May generate Intel(R) SSE4 Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3, SSE3, SSE2, and SSE instructions and it may optimize for the Intel(R) Core(TM) processor family. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. Optimizes for a future Intel processor. SSSE3_ATOM May generate MOVBE instructions for Intel processors, depending on the setting of option -minstruction. May also generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. Optimizes for the Intel(R) Atom(TM) processor and Intel(R) Centrino(R) Atom(TM) Processor Technology. -xHost generate instructions for the highest instruction set and processor available on the compilation host machine -ax[,,...] generate code specialized for processors specified by while also generating generic IA-32 instructions. includes one or more of the following: SSE2 May generate Intel(R) SSE2 and SSE instructions for Intel processors. SSE3 May generate Intel(R) SSE3, SSE2, and SSE instructions for Intel processors. SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel processors. AVX May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX2 May generate Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2), Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. CORE-AVX-I May generate Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm, Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions for Intel(R) processors. -arch generate specialized code to optimize for processors indicated by as described below SSE2 May generate Intel(R) SSE2 and SSE instructions SSE3 May generate Intel(R) SSE3, SSE2 and SSE instructions SSSE3 May generate Intel(R) SSSE3, SSE3, SSE2 and SSE instructions SSE4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions SSE4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions AVX May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 and SSE instructions -mcpu= same as -mtune= -mtune= optimize for a specific pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code exclusively for a given core-avx2 - processors that support Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) core-avx-i - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX), including instructions in Intel(R) Core 2(TM) processors in process technology smaller than 32nm corei7-avx - processors that support Intel(R) Advanced Vector Extensions (Intel(R) AVX) corei7 - processors that support Intel(R) SSE4 Efficient Accelerated String and Text Processing instructions atom - processors that support MOVBE instructions core2 - Intel(R) Core 2(TM) processor family pentium-m - Intel(R) Pentium(R) M processors pentium4 - Intel(R) Pentium(R) 4 processors pentium3 - Intel(R) Pentium(R) III processors (Linux only) -msse3 May generate Intel(R) SSE3, SSE2, and SSE instructions -mssse3 May generate Intel(R) SSSE3, SSE3, SSE2, and SSE instructions -msse4 Enable -msse4.2 -msse4.1 May generate Intel(R) SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -msse4.2 May generate Intel(R) SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -mavx May generate Intel(R) AVX, SSE4.2, SSE4.1, SSSE3, SSE3, SSE2, and SSE instructions -masm= generate asm instructions specified by , which may be att (DEFAULT) or intel -mmic build an application that runs natively on Intel(R) MIC Architecture -minstruction= Refine instruction set output for the selected target processor [no]movbe - Do/do not generate MOVBE instructions with SSSE3_ATOM (requires -xSSSE3_ATOM) -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]exceptions enable/disable(DEFAULT) C++ exception handling table generation -f[no-]exceptions enable(DEFAULT)/disable exception handling -fasynchronous-unwind-tables determines whether unwind information is precise at an instruction boundary or at a call boundary. -fno-asynchronous-unwind-tables is the default for IA-32 architecture. -fextend-arguments=[32|64] By default, unprototyped scalar integer arguments are passed in 32-bits (sign-extended if necessary). On Intel(R) 64, unprototyped scalar integer arguments may be extended to 64-bits. Interprocedural Optimization (IPO) ---------------------------------- -[no-]ip enable(DEFAULT)/disable single-file IP optimization within files -ipo[n] enable multi-file IP optimization between files -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.S) -ip-no-inlining disable full and partial inlining -ip-no-pinlining disable partial inlining -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Advanced Optimizations ---------------------- -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable the loop unroller -[no-]unroll-aggressive enables more aggressive unrolling heuristics -funroll-loops unroll loops based on default heuristics -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[no]pad enable/disable(DEFAULT) changing variable and array memory layout -safe-cray-ptr Cray pointers do not alias with other variables -[no-]ansi-alias enable/disable(DEFAULT) use of ANSI aliasing rules optimizations; user asserts that the program adheres to these rules -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. -reentrancy specify whether the threaded, reentrant run-time support should be used Keywords: none (same as -noreentrancy), threaded, async -noreentrancy do not use threaded, reentrant run-time support -heap-arrays [n] temporary arrays of minimum size n (in kilobytes) are allocated in heap memory rather than on the stack. If n is not specified, all temporary arrays are allocated in heap memory. -no-heap-arrays temporary arrays are allocated on the stack (DEFAULT) -[no-]opt-multi-version-aggressive enables more aggressive multi-versioning to check for pointer aliasing and scalar replacement -opt-ra-region-strategy[=] select the method that the register allocator uses to partition each routine into regions routine - one region per routine block - one region per block trace - one region per trace loop - one region per loop default - compiler selects best option -[no-]vec enables(DEFAULT)/disables vectorization -[no-]vec-guard-write enables cache/bandwidth optimization for stores under conditionals within vector loops -vec-threshold[n] sets a threshold for the vectorization of loops based on the probability of profitable execution of the vectorized loop in parallel -opt-malloc-options={0|1|2|3|4} specify malloc configuration parameters. Specifying a non-zero value will cause alternate configuration parameters to be set for how malloc allocates and frees memory -opt-jump-tables= control the generation of jump tables default - let the compiler decide when a jump table, a series of if-then-else constructs or a combination is generated large - generate jump tables up to a certain pre-defined size (64K entries) - generate jump tables up to in size use -no-opt-jump-tables to lower switch statements as chains of if-then-else constructs -fno-jump-tables do not generate jump tables for switches and if-then-else statements -opt-block-factor= specify blocking factor for loop blocking -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores -mkl[=] link to the Intel(R) Math Kernel Library (Intel(R) MKL) and bring in the associated headers parallel - link using the threaded Intel(R) MKL libraries. This is the default when -mkl is specified sequential - link using the non-threaded Intel(R) MKL libraries cluster - link using the Intel(R) MKL Cluster libraries plus the sequential Intel(R) MKL libraries -[no-]opt-subscript-in-range assumes no overflows in the intermediate computation of the subscripts -coarray[=shared|distributed] enable/disable(DEFAULT) coarray syntax for data parallel programming. The default is shared-memory; distributed memory is only valid with the Intel(R) Cluster Toolkit -coarray-num-images=n set default number of coarray images -[no-]opt-matmul replace matrix multiplication with calls to intrinsics and threading libraries for improved performance (DEFAULT at -O3 -parallel) -[no-]simd enables(DEFAULT)/disables vectorization using SIMD directive -guide-opts= tells the compiler to analyze certain code and generate recommendations that may improve optimizations -guide-file[=] causes the results of guide to be output to a file -guide-file-append[=] causes the results of guide to be appended to a file -guide[=] lets you set a level (1 - 4) of guidance for auto-vectorization, auto-parallelization, and data transformation (DEFAULT is 4 when the option is specified) -guide-data-trans[=] lets you set a level (1 - 4) of guidance for data transformation (DEFAULT is 4 when the option is specified) -guide-par[=] lets you set a level (1 - 4) of guidance for auto-parallelization (DEFAULT is 4 when the option is specified) -guide-vec[=] lets you set a level (1 - 4) of guidance for auto-vectorization (DEFAULT is 4 when the option is specified) -guide-profile=<[file|dir]>[,[file|dir],...] specify a loop profiler data file (or set of files in a directory) when using the -guide option -opt-mem-layout-trans[=] controls the level of memory layout transformations performed by the compiler 0 - disable memory layout transformations (same as -no-opt-mem-layout-trans) 1 - enable basic memory layout transformations 2 - enable more memory layout transformations (DEFAULT when the option is specified) 3 - enable aggressive memory layout transformations -opt-prefetch[=n] enable levels of prefetch insertion, where 0 disables. n may be 0 through 4 inclusive. Default is 2. -no-opt-prefetch disable(DEFAULT) prefetch insertion. Equivalent to -opt-prefetch=0 -opt-prefetch-distance=n1[,n2] specify the prefetch distance (how many iterations ahead, use n1 and n2 values such that n1>=n2) to be used for compiler generated prefetches inside loops. n1 indicates distance from memory to L2 cache and n2 indicates distance from L2 to L1. (Intel(R) MIC Architecture specific) -opt-threads-per-core=n specifies the number of threads (1 - 4) per core to be used for an application (Intel(R) MIC Architecture specific) -opt-streaming-cache-evict=n specifies the cache line eviction level (0 - 3) when streaming loads/stores are used. (Intel(R) MIC Architecture specific) -opt-assume-safe-padding assume that variables and dynamically allocated memory are padded (Intel(R) MIC Architecture specific) Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-src-root specify project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -prof-src-root-cwd specify the current directory as the project root directory for application source files to enable relative path resolution during profile feedback on sources below that directory -[no-]prof-src-dir specify whether directory names of sources should be considered when looking up profile records within the .dpi file -prof-file specify file name for profiling summary file -[no-]prof-data-order enable/disable(DEFAULT) static data ordering with profiling -[no-]prof-func-order enable/disable(DEFAULT) function ordering with profiling -[no-]prof-func-groups enable(DEFAULT with PGO)/disable function grouping -prof-gen[=keyword] instrument program for profiling. Optional keyword may be srcpos or globdata -no-prof-gen disable profiling instrumentation -prof-use[=] enable use of profiling information during optimization weighted - invokes profmerge with -weighted option to scale data based on run durations [no]merge - enable(default)/disable the invocation of the profmerge tool -no-prof-use disable use of profiling information during optimization -p compile and link for function profiling with UNIX gprof tool On IA32 and Intel(r)64, -pg is also valid -f[no-]instrument-functions determine whether function entry and exit points are instrumented -prof-hotness-threshold= set the hotness threshold for function grouping and function ordering val indicates percentage of functions to be placed in hot region. This option requires -prof-use and -prof-func-groups or -prof-func-order -prof-value-profiling=[,,...] limit value profiling none - inhibit all types of value profiling nodivide - inhibit value profiling of non-compile time constants used in division or remainder operations noindcall - inhibit value profiling of function addresses at indirect call sites -profile-functions enable instrumentation in generated code for collecting function execution time profiles -profile-loops: enable instrumentation in generated code for collecting loop execution time profiles inner - instrument inner loops outer - instrument outer loops all - instrument all loops -profile-loops-report: Control the level of instrumentation inserted for reporting loop execution profiles 1 - report loop times 2 - report loop times and iteration counts Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT when enabled) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information n=6 indicate vectorized/non-vectorized loops with greater details and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file= specify the filename for the generated report -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 -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci - instruments a program to perform a thread-count-independent analysis tcd - instruments a program to perform a thread-count-dependent analysis (DEFAULT when mode is not used) api - instruments a program at the api-imports level -tcollect[=] inserts instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) -tcollect-filter file Enable or disable the instrumentation of specified functions. (requires Intel(R) Trace Collector) OpenMP* and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP* directives (same as -fopenmp) -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 -openmp-lib choose which OpenMP library version to link with compat - use the GNU compatible OpenMP run-time libraries (DEFAULT) -openmp-link choose whether to link with the static or dynamic OpenMP libraries. Default is dynamic. -openmp-threadprivate= choose which threadprivate implementation to use compat - use the GNU compatible thread local storage legacy - use the Intel compatible implementation (DEFAULT) -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 -par-runtime-control[n] Control parallelizer to generate runtime check code for effective automatic parallelization. n=0 no runtime check based auto-parallelization n=1 generate runtime check code under conservative mode (DEFAULT when enabled) n=2 generate runtime check code under heuristic mode n=3 generate runtime check code under aggressive mode -par-schedule-static[=n] Specifies a scheduling algorithm for DO loop iteration. Divides iterations into contiguous pieces. Size n if specified, equal sized pieces if not. -par-schedule-static_balanced[=n] Divides iterations into even-sized chunks. Size n if specified, equal sized pieces if not. -par-schedule-static-steal[=n] Divides iterations into even-sized chunks, but allows threads to steal parts of chunks from neighboring threads -par-schedule-dynamic[=n] Specifies a scheduling algorithm for DO loop iteration. Assigns iterations to threads in chunks dynamically. Chunk size is n iterations if specified, otherwise 1. -par-schedule-guided[=n] Specifies a scheduling algorithm for DO loop iteration. Indicates a minimum number of iterations. If specified, n is the minimum number, otherwise 1. -par-schedule-guided-analytical[=n] Divides iterations by using exponential distribution or dynamic distributions. -par-schedule-runtime Specifies a scheduling algorithm for DO loop iteration. Defers the scheduling decision until runtime. -par-schedule-auto Lets the compiler or run-time system determine the scheduling algorithm. -par-affinity=[,...][,][,] tune application performance by setting different thread affinity -par-num-threads= tune application performance by setting different number of threads -parallel-source-info[=n] enable(DEFAULT)/disable the emission of source location information for parallel code generation with OpenMP and auto-parallelization 0 - disable (same as -no-parallel-source-info) 1 - emit routine name and line information (DEFAULT) 2 - emit path, file, routine name and line information Floating Point -------------- -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions and enables pragma stdc fenv_access -fp-speculation= enable floating point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -mp1 improve floating-point precision (speed impact less than -mp) -mieee-fp same as -mp, can be disabled with -mno-ieee-fp -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]prec-div improve precision of FP divides (some speed impact) -[no-]fast-transcendentals generate a faster version of the transcendental functions -[no-]fp-port round fp results at assignments and casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate -[no-]ftz enable/disable flush denormal results to zero -fpe{0|1|3} specifies program-wide behavior on floating point exceptions -fpe-all={0|1|3} specifies floating point exception behavior on all functions and subroutines. Also sets -assume ieee_fpe_flags -[no]fltconsistency specify that improved floating-point consistency should be used -[no-]fma enable/disable the combining of floating point multiplies and add/subtract operations -[no]recursive compile all procedures for possible recursive execution Inlining -------- -inline-level= control inline expansion: n=0 disable inlining n=1 inline functions declared with ATTRIBUTES INLINE or FORCEINLINE n=2 inline any function, at the compiler's discretion -f[no-]inline-functions inline any function at the compiler's discretion -finline-limit= set maximum number of statements a function can have and still be considered for inlining -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set set inlining upper limits -inline-forceinline treat inline routines as forceinline -inline-calloc directs the compiler to inline calloc() calls as malloc()/memset() Output, Debug, PCH ------------------ -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -fcode-asm produce assembly file with optional code annotations (requires -S) -use-msasm support Microsoft* style assembly language insertion using MASM style syntax -Fa[file] name assembly file (or directory for multiple files; i.e. /FaMYDIR\) -Fo[file] name object file (or directory for multiple files; i.e. /FoMYDIR\) -o name output file -list [] specify that a listing file should be generated -list-line-len=# overrides the default line length (80) in a listing file -list-page-len=# overrides the default page length (66) in a listing file -show controls the contents of the listing file keywords: all, none, [no]include, [no]map, [no]options -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -debug [keyword] enable debug information and control output of enhanced debug information keywords: all, full, minimal, none, [no]inline-debug-info [no]variable-locations, [no]semantic-stepping, extended, [no]pubnames, [no]profiling parallel -debug-parameters [keyword] control output of debug information for PARAMETERS keywords: all, used, none (same as -nodebug-parameters) -nodebug-parameters do not output debug information for PARAMETERS -fvar-tracking same as -debug variable_locations -fvar-tracking-assignments same as -debug semantic_stepping -g0 disable generation of symbolic debug information -gdwarf-2 enable generation of debug information using the DWARF2 format -gdwarf-3 enable generation of debug information using the DWARF3 format -grecord-gcc-switches record command line options in the DW_AT_producer attribute in the DWARF debugging information -fno-merge-debug-strings do not merge identical debug strings in different object files -fno-merge-constants do not merge identical string constants in different object files -[no]d-lines compile debug statements (indicated by D in column 1) -DD compile debug statements, indicated by D in column 1. This option prevents the definition of a macro named D using the command line -Dname option (use -Dname=n syntax instead) -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used Preprocessor ------------ -D[=] define macro -nodefines, -noD specifies that any -D macros go to the preprocessor only, and not to the compiler -U remove predefined macro -allow nofpp-comments If a Fortran end-of-line comment is seen within a #define, treat it as part of the definition. Default is allow:fpp-comments -E preprocess to stdout -EP preprocess to stdout, omitting #line directives -P preprocess to file, omitting #line directives -preprocess-only same as -P -[no]keep keep/remove preprocessed file generated by preprocessor as input to compiler stage. Not affected by -save-temps. Default is -nokeep -fpp[n], -[no]fpp run Fortran preprocessor on source files prior to compilation n=0 disable running the preprocessor, equivalent to nofpp n=1,2,3 run preprocessor -module path specify path where mod files should be placed and first location to look for mod files -I add directory to include file search path -idirafter add directory to the second include file search path (after -I) -isystem add directory to the start of the system include path -X, -nostdinc remove standard directories from include file search path -B find libraries, headers and executables in -[no]gen-dep[=filename] generate dependency information. If no filename is specified, output to stdout -gen-depformat=keyword generate dependency information in the specified format. One of: make, nmake 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 -------- -[no]altparam specify if alternate form of parameter constant declarations (without parenthesis) is recognized. Default is to recognize -assume specify assumptions made by the optimizer and code generator keywords: none, [no]byterecl, [no]buffered_io, [no]bscc (nobscc same as -nbs), [no]cc_omp, [no]minus0, [no]dummy_aliases (same as -common-args), [no]ieee_fpe_flags, [no]fpe_summary, [no]old_boz, [no]old_complex_align, [no]old_logical_ldio, [no]old_ldout_format, [no]old_maxminloc, [no]old_unit_star, [no]old_xor, [no]protect_constants, [no]protect_parens, [no]realloc_lhs, [no]2underscore, [no]underscore (same as -us), [no]std_intent_in, [no]std_mod_proc_name, [no]source_include, [no]split_common,[no]writeable_strings -ccdefault specify default carriage control for units 6 and * keywords: default, fortran, list or none -[no]check check run-time conditions. Default is -nocheck keywords: all (same as -C), none (same as -nocheck), [no]arg_temp_created, [no]bounds (same as -CB), [no]format, [no]output_conversion, [no]pointer (same as -CA), [no]uninit (same as -CU), [no]stack -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_aliases -e03 issue errors for language elements that are not standard in Fortran 2003 (same as -stand f03 -warn stderrors options) -e95 issue errors for language elements that are not standard in Fortran 95 (same as -stand f95 -warn stderrors options) -e90 issue errors for language elements that are not standard in Fortran 90 (same as -stand f90 -warn stderrors options) -[no]extend-source [] specify rightmost column for fixed form sources keywords: 72 (same as -noextend-source and -72), 80 (same as -80), 132 (same as -132. Default if you specify -extend-source without a keyword.) -fixed specify source files are in fixed format. Same as -FI -nofixed indicates free format -free specify source files are in free format. Same as -FR -nofree indicates fixed format -[no]mixed-str-len-arg indicate whether hidden lengths are passed after their character argument or after all arguments. -names specify how source code identifiers and external names are interpreted. keywords: as_is, lowercase, uppercase -[no]pad-source make compiler acknowledge blanks at the end of a line -stand [] specifies level of conformance with ANSI standard to check for. If keyword is not specified, level of conformance is f03 keywords: f90 (same as -std90), f95(same as -std95), f03(same as -std95), none (same as -nostand) -standard-semantics sets assume keywords to conform to the semantics of the f03 standard. May result in performance loss. assume keywords set by -standard-semantics: byterecl, fpe_summary, minus0, noold_maxminloc, noold_unit_star, noold_xor, protect_parens, realloc_lhs, std_intent_in, std_mod_proc_name, noold_ldout_format -syntax-only perform syntax and semantic checking only (no object file produced) Compiler Diagnostics -------------------- -w disable all warnings -W disable warnings (n = 0) or show warnings (n = 1 DEFAULT, same as -warn general) -warn specifies the level of warning messages issued keywords: all, none (same as -nowarn) [no]alignments, [no]declarations, [no]errors, [no]general, [no]ignore_loc, [no]interfaces, [no]stderrors, [no]truncated_source, [no]uncalled, [no]unused, [no]usage -nowarn suppress all warning messages -WB turn a compile-time bounds check into a warning -Winline enable inline diagnostics -[no]traceback specify whether the compiler generates PC correlation data used to display a symbolic traceback rather than a hexadecimal traceback at runtime failure -[no]gen-interfaces[:[no]source] generate interface blocks for all routines in the file. Can be checked using -warn interfaces nosource indicates temporary source files should not be saved -error-limit specify the maximum number of error-level or fatal-level compiler errors allowed -noerror-limit set no maximum number on error-level or fatal-level error messages -diag-enable [,,...] enable the specified diagnostics or diagnostic groups -diag-disable [,,...] disable the specified diagnostics or diagnostic groups where may be individual diagnostic numbers or group names. where group names include: sc[n] - perform source code analysis: n=1 for critical errors, n=2 for all errors and n=3 for all errors and warnings sc- {full|concise|precise} - perform static analysis and determine the analysis mode. Full mode - attempts to find all program weaknesses, even at the expense of more false positives. Concise mode - attempts to reduce false positives somewhat more than reducing false negatives. Precise mode - attempts to avoid all false positives Default: full if -diag-enable sc{[1|2|3]} is present; otherwise None (static analysis diagnostics are disabled). sc-include - perform source code analysis on include files sc-single-file - This option tells static analysis to process each file individually. Default: OFF sc-enums - This option tells static analysis to treat enumeration variables as known values equal to any one of the associated enumeration literals. Default: OFF sc-parallel[n] - perform analysis of parallelization in source code: n=1 for critical errors, n=2 for errors, n=3 for all errors and warnings warn - diagnostic messages that have "warning" severity level. error - diagnostic messages that have "error" severity level. remark - diagnostic messages that are remarks or comments. vec - diagnostic messages issued by the vectorizer. par - diagnostic messages issued by the auto-parallelizer openmp - diagnostic messages issued by the OpenMP* parallelizer. cpu-dispatch Specifies the CPU dispatch remarks. -diag-error [,,...] output the specified diagnostics or diagnostic groups as errors -diag-warning [,,...] output the specified diagnostics or diagnostic groups as warnings -diag-remark [,,...] output the the specified diagnostics or diagnostic groups as remarks -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. -diag-sc-dir= directory where diagnostics from static analysis are created, rather than current working directory. -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -diag-file-append[=] where diagnostics are emitted to. When already exists, output is appended to the file -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form -diag-error-limit specify the maximum number of errors emitted Miscellaneous ------------- -[no]logo display compiler version information. -nologo disables the output -V display compiler version information -dumpmachine display the target machine only --version display GCC style version information -sox[=[,keyword]] enable saving of compiler options, version and additional information in the executable. Use -no-sox to disable(DEFAULT) profile - include profiling data inline - include inlining information -save-temps store the intermediate files in current directory and name them based on the source file. Only saves files that are generated by default -dryrun show driver tool commands but do not execute tools -v show driver tool commands and execute tools -what display detailed compiler version information -watch= tells the driver to output processing information keywords: all, none (same as -nowatch), [no]source, [no]cmd (same as -v) [no]mic-cmd -nowatch suppress processing information output (DEFAULT) -Tf compile file as Fortran source -multiple-processes[=] create multiple processes that can be used to compile large numbers of source files at the same time Offload ------- -offload-attribute-target= flags every global routine and global data object in the source file with the offload attribute target(mic) -offload-option,,,"option list" appends additional options for offload compilations given the target and tool. The option list is a space separated quoted list of options target - mic tool - compiler, ld, as -no-offload disable any offload usage Data ---- -i{2|4|8} set default KIND of integer and logical variables to 2, 4, or 8 -integer-size specifies the default size of integer and logical variables size: 16, 32, 64 -r{8|16} set default size of real to 8 or 16 bytes -real-size specify the size of REAL and COMPLEX declarations, constants, functions, and intrinsics size: 32, 64, 128 -autodouble same as -real-size 64 or -r8 -double-size defines the size of DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics size: 64, 128 -[no]fpconstant extends the precision of single precision constants assigned to double precision variables to double precision -[no]intconstant use Fortran 77 semantics, rather than Fortran 90/95, to determine kind of integer constants -auto make all local variables AUTOMATIC -auto-scalar make scalar local variables AUTOMATIC (DEFAULT) -save save all variables (static allocation) (same as -noauto, opposite of -auto) -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are saved and not initialized -dyncom make given common blocks dynamically-allocated -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16 -Zp16 DEFAULT) -[no]align analyze and reorder memory layout for variables and arrays -align specify how data items are aligned keywords: all (same as -align), none (same as -noalign), [no]commons, [no]dcommons, [no]qcommons, [no]zcommons, rec1byte, rec2byte, rec4byte, rec8byte, rec16byte, rec32byte, rec64byte, array8byte, array16byte, array32byte, array64byte, array128byte, array256byte, [no]records, [no]sequence -fminshared Compilation is for the main executable. Absolute addressing can be used and non-position independent code generated for symbols that are at least protected -fcommon Enables the compiler to treat common variables as if they were defined. That in turn allows the use of gprel addressing of common data variables. -fno-common disables -fstack-security-check enable overflow security checks. -f[no-]stack-security-check disables (DEFAULT) -fstack-protector enable stack overflow security checks. -f[no-]stack-protector disables (DEFAULT) -fstack-protector-all enable stack overflow security checks including functions. -f[no-]stack-protector-all disables (DEFAULT) -fpic, -fPIC generate position independent code (-fno-pic/-fno-PIC is DEFAULT) -fpie, -fPIE generate position independent code that will be linked into an executable (-fno-pie/-fno-PIE is DEFAULT) -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]zero-initialized-in-bss put explicitly zero initialized variables into the DATA section instead of the BSS section -mcmodel= use a specific memory model to generate code and store data small - Restricts code and data to the first 2GB of address space (DEFAULT) medium - Restricts code to the first 2GB; it places no memory restriction on data large - Places no memory restriction on code or data -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, vaxg -falign-functions=[2|16] align the start of functions on a 2 (DEFAULT) or 16 byte boundary -falign-functions align the start of functions to an optimal machine-dependent value. -fno-align-functions (DEFAULT) aligns on a 2-byte boundary -fvisibility=[extern|default|protected|hidden|internal] Global symbols (data and functions) will get the visibility attribute given by default. Symbol visibility attributes explicitly set in the source code or using the symbol visibility attribute file options will override the -fvisibility setting -fvisibility-extern= Space separated symbols listed in the argument will get visibility set to extern -fvisibility-default= Space separated symbols listed in the argument will get visibility set to default -fvisibility-protected= Space separated symbols listed in the argument will get visibility set to protected -fvisibility-hidden= Space separated symbols listed in the argument will get visibility set to hidden -fvisibility-internal= Space separated symbols listed in the argument will get visibility set to internal -fvisibility-inlines-hidden mark inline member functions as hidden -fimf-absolute-error=value[:funclist] define the maximum allowable absolute error for math library function results -fimf-accuracy-bits=bits[:funclist] define the relative error, measured by the number of correct bits, for math library function results -fimf-arch-consistency=value[:funclist] ensures that the math library functions produce consistent results across different implementations of the same architecture -fimf-max-error=ulps[:funclist] defines the maximum allowable relative error, measured in ulps, for math library function results -fimf-precision=value[:funclist] defines the accuracy (precision) for math library functions -fimf-domain-exclusion=classlist[:funclist] indicates the domain on which a function is evaluated Compatibility ------------- -fpscomp specify the level of compatibility to adhere to with Fortran PowerStation keywords: all, none (same as -nofpscomp), [no]filesfromcmd, [no]general, [no]ioformat, [no]ldio_spacing, [no]libs, [no]logicals -nofpscomp no specific level of compatibility with Fortran PowerStation -f66, -66 allow extensions that enhance FORTRAN-66 compatibility -f77rtl specify that the Fortran 77 specific run-time support should be used -nof77rtl disables -vms enable VMS I/O statement extensions -gcc-name= name and location of gcc if not where expected -gxx-name= name and location of g++ if not where expected -gcc-version= specify the of gcc compatibility. Default value matches gcc version installed. Major/Minor versions listed but patch levels (i.e. 345) are permissible Example: -gcc-version=410 -> gcc 4.1.x compatibility Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -static-libstdc++ link libstdc++ statically -dynamic-linker select dynamic linker other than the default -no-cxxlib do not link in C++ runtime libraries -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and 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 -nofor-main do not link against Fortran main object. Used when linking Fortran objects with C main program -static prevents linking with shared libraries -shared produce a shared object -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -threads specify that multi-threaded libraries should be linked against -nothreads disables multi-threaded libraries -pie,-no_pie generate position independent code that will be linked into an executable (-pie is DEFAULT for Mac OS X 10.7 and later) -no-pie/-no_pie disables position independent code Linker Specific Options ----------------------- These options are specific to the linker. Details can be found in the linker documentation and man page -L -T -h -u -z -i -r -s -N -Bsymbolic -Bdynamic -Bstatic Deprecated Options ------------------ -export No replacement -export-dir No replacement -Ob use -inline-level= -i-dynamic use -shared-intel -i-static use -static-intel -inline-debug-info use -debug inline-debug-info -mp use -fp-model -use-asm No replacement -prof-genx use -prof-gen=srcpos -fwritable-strings use -assume writeable-strings -1, -66, -onetrip use -f66 -Vaxlib No replacement -automatic use -auto -cm use -warn nousage -dps use -altparam -lowercase use -names lowercase -uppercase use -names uppercase -nus use -assume nounderscore -pthread use -reentrancy threaded -w90, -w95 No replacement -tune use -x -arch pn* use -arch -tprofile No replacement -xK use -mia32 -axK use -mia32 -xW use -msse2 -axW use -msse2 -xN use -xSSE2 -axN use -axSSE2 -xP use -xSSE3 -axP use -axSSE3 -xT use -xSSSE3 -axT use -axSSSE3 -xS use -xSSE4.1 -axS use -axSSE4.1 -xO use -msse3 -xSSE3_ATOM use -xSSSE3_ATOM -diag-enable sv use -diag-enable sc -diag-enable sv-include use -diag-enable sc-include -diag-disable sv use -diag-disable sc -diag-sv use -diag-enable sc -diag-sv-error use -diag-disable warning -diag-sv-include use -diag-enable sc-include -diag-sv-level No replacement -diag-sv-sup use -diag-disable [,,...] -help [category] print full or category help message Valid categories include advanced - Advanced Optimizations codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimization (IPO) language - Language link - Linking/Linker misc - Miscellaneous opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports openmp - OpenMP and Parallel Processing Copyright (C) 1985-2012, Intel Corporation. All rights reserved. * Other names and brands may be claimed as the property of others. Popping language FC **** Configure header conftest.h **** #if !defined(INCLUDED_UNKNOWN) #define INCLUDED_UNKNOWN #ifndef PETSC_HAVE_DLFCN_H #define PETSC_HAVE_DLFCN_H 1 #endif #ifndef PETSC_C_STATIC_INLINE #define PETSC_C_STATIC_INLINE static inline #endif #ifndef PETSC_C_RESTRICT #define PETSC_C_RESTRICT __restrict__ #endif #ifndef PETSC_HAVE_LIBDL #define PETSC_HAVE_LIBDL 1 #endif #ifndef PETSC_ARCH #define PETSC_ARCH "arch-intel-mpi-rel-64bit" #endif #ifndef PETSC_DIR #define PETSC_DIR "/d/dev01/qlu/Lib/petsc-3.4.2-64bit" #endif #ifndef HAVE_GZIP #define HAVE_GZIP 1 #endif #ifndef PETSC_CLANGUAGE_C #define PETSC_CLANGUAGE_C 1 #endif #ifndef PETSC_USE_ERRORCHECKING #define PETSC_USE_ERRORCHECKING 1 #endif #ifndef PETSC_HAVE_SHARED_LIBRARIES #define PETSC_HAVE_SHARED_LIBRARIES 1 #endif #ifndef PETSC_USE_GDB_DEBUGGER #define PETSC_USE_GDB_DEBUGGER 1 #endif #endif **** C specific Configure header conffix.h **** #if !defined(INCLUDED_UNKNOWN) #define INCLUDED_UNKNOWN #if defined(__cplusplus) extern "C" { } #else #endif #endif ******************************************************************************* UNABLE to EXECUTE BINARIES for ./configure ------------------------------------------------------------------------------- Cannot run executables created with FC. If this machine uses a batch system to submit jobs you will need to configure using ./configure with the additional option --with-batch. Otherwise there is problem with the compilers. Can you compile and run code with your C/C++ (and maybe Fortran) compilers? See http://www.mcs.anl.gov/petsc/documentation/faq.html#libimf ******************************************************************************* File "./config/configure.py", line 293, in petsc_configure framework.configure(out = sys.stdout) File "/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/framework.py", line 933, in configure child.configure() File "/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py", line 1332, in configure self.executeTest(self.checkCLibraries) File "/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/base.py", line 115, in executeTest ret = apply(test, args,kargs) File "/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/compilers.py", line 299, in checkCLibraries self.setCompilers.checkCompiler('FC') File "/d/dev01/qlu/Lib/petsc-3.4.2-64bit/config/BuildSystem/config/setCompilers.py", line 448, in checkCompiler raise OSError(msg)