Oracle Solaris Studio 12.2:Fortran 用户指南

3.3 选项摘要

在本节中,为了便于参考,将按功能对编译器选项进行分组。有关详细信息,请参见以下几节中相应页面上的内容。

请注意,并非所有选项在 SPARC 和 x64/x86 平台上都可用。有关可用性的说明,请查看详细的参考部分。

下表按功能汇总 f95 编译器选项。该表不包括已过时的和传统的选项标志。某些标志用于多个目的,因此出现多次。

表 3–3 按功能分组的编译器选项

功能 

选项标志  

编译模式:

 

仅编译;不生成可执行文件 

-c

 

显示由驱动程序生成的命令,但不进行编译 

-dryrun

 

支持 Fortran 77 扩展和兼容性 

-f77

 

保留在编译期间所创建的临时文件。 

-keeptmp

 

指定要将已编译的 .mod 模块文件写入的路径

-moddir=path

 

指定要编写的目标文件、库文件或可执行文件的名称 

-o filename

 

进行编译并只生成汇编代码 

-S

 

将符号表与可执行文件分离 

-s

 

禁止编译器消息(错误消息除外) 

-silent

 

定义临时文件所在目录的路径 

-temp=path

 

显示每个编译阶段占用的时间 

-time

 

显示编译器的版本号及其阶段 

-V

 

冗余消息 

-v

 

指定非标准别名情况 

-xalias=list

 

使用多个处理器进行编译 

-xjobs=n

已编译的代码:

 

对于外部名称,增加/删除尾随下划线 

-ext_names=x

 

内联指定的用户函数 

-inline=list

 

与编译位置无关的代码 

-KPIC/-kpic

 

内联某些数学库例程 

-libmil

 

STOP 将整数状态值返回给 shell 

-stop_status[=yn]

 

指定代码地址空间 

-xcode=x

 

启用预取指令。 

-xprefetch[=x]

 

指定可选寄存器的使用 

-xregs=x

 

指定缺省数据映射 

-xtypemap=x

数据对齐:

 

指定对齐 COMMON 块中的数据 

-aligncommon[=n]

 

强制对齐 COMMON 块数据以允许双字获取/存储 

-dalign

 

强制所有数据按 8 字节边界对齐 

-dbl_align_all

 

按 8 字节边界对齐 COMMON 块数据 

-f

 

指定内存对齐和行为 

-xmemalign[=ab]

调试:

 

启用运行时下标范围检查 

-C

 

为使用 dbx 调试而进行编译

-g

 

标志未声明变量的使用 

-u

 

检查 !$PRAGMA ASSUME 断言

-xassume_control=check

 

检查在运行时栈是否溢出 

-xcheck=stkovf

 

启用运行时任务普通检查 

-xcommonchk

 

为性能分析器进行编译 

-xF

 

生成交叉引用列表 

-Xlistx

 

在没有目标文件的情况下启用调试 

-xs

诊断:

 

标志非标准扩展名的使用 

-ansi

 

禁止显示指定的警告消息 

-erroff=

 

与错误消息一起显示错误标记名称 

-errtags

 

显示编译器选项的摘要 

-flags、-help

 

显示编译器的版本号及其阶段 

-V

 

冗余消息 

-v

 

冗余的并行化消息 

-vpara

 

显示/禁止警告消息 

-wn

 

显示编译器自述文件 

-xhelp=readme

许可:

 

显示许可证服务器信息 

-xlicinfo

链接和库:

 

允许/要求动态/静态库 

-Bx

 

只允许动态/静态库链接 

-dy、-dn

 

生成动态(共享对象)库 

-G

 

为动态库指定名称 

-hname

 

将目录增加到库搜索路径 

-Lpath

 

与库 libname.alibname.so 链接

-lname

 

不将库搜索路径生成到可执行文件中。 

-norunpath

 

将运行时库搜索路径生成到可执行文件中 

-Rpath

 

禁用递增链接程序 ild

-xildoff

 

与优化的数学库链接 

-xlibmopt

 

与 Sun 性能库链接 

-xlic_lib=sunperf

 

链接编辑器选项 

-zx

 

在不重定位的情况下生成纯库 

-ztext

数字和浮点:

 

使用非标准浮点首选项 

-fnonstd

 

选择非标准浮点 

-fns

 

启用输入过程中的运行时浮点溢出 

-fpover

 

选择 IEEE 浮点舍入模式 

-fpround=r

 

选择浮点优化级别 

-fsimple=n

 

选择浮点捕获模式 

-ftrap=t

 

指定用于格式化输入/输出的舍入方法 

-iorounding=mode

 

将单精度常数提升为双精度常量 

-r8const

 

启用区间运算并设置相应的浮点环境(包括 -xinterval

-xia[=e]

 

启用区间运算扩展 

-xinterval[=e]

优化与性能:

 

分析循环以了解数据依赖性 

-depend

 

使用所选的选项进行优化 

-fast

 

指定优化级别 

-On

 

填充数据布局以便高效使用高速缓存 

-pad[=p]

 

在内存栈上分配局部变量 

-stackvar

 

启用循环解开 

-unroll[=m]

 

启用跨源文件的优化 

-xcrossfile[=n]

 

调用过程间优化传递 

-xipo[=n]

 

#pragma OPT 设置最高优化级别

-xmaxopt[=n]

 

针对编译后优化进行编译 

-xbinopt=prepare

 

启用/调整编译器生成的预取指令 

-xprefetch=list

 

控制预取指令的自动生成 

-xprefetch_level=n

 

启用性能分析数据的生成或使用 

-xprofile=p

 

断言不会出现基于内存的陷阱 

-xsafe=mem

 

不执行增加代码大小的优化 

-xspace

 

自动生成对向量库函数的调用 

-xvector[=yn]

并行化:

 

启用 DO 循环的自动并行化 

-autopar

 

显示循环的并行化信息 

-loopinfo

 

为手动编码的多线程编程进行编译 

-mt

 

接受 OpenMP API 指令并设置相应的环境 

-xopenmp[=keyword]

 

识别具有自动并行化的循环中的约简操作 

-reduction

 

冗余的并行化消息 

-vpara

源代码:

 

定义预处理程序符号 

-Dname[=val]

 

未定义预处理程序符号 

-Uname

 

接受扩展(132 个字符)源行 

-e

 

将预处理程序应用于 .F 和/或 .F90.F95 文件,但不进行编译

-F

 

接受 Fortran 95 固定格式输入 

-fixed

 

使用 fpp 预处理程序对所有源文件进行预处理

-fpp

 

接受 Fortran 95 自由格式输入 

-free

 

将目录添加到 include 文件搜索路径 

-Ipath

 

将目录添加到模块搜索路径 

-Mpath

 

区分大小写 

-U

 

在实际参数中将霍尔瑞斯常数视为字符 

-xhasc={yes|no}

 

选择要使用的预处理程序(cppfpp

-xpp[={fpp|cpp}]

 

允许递归子程序调用 

-xrecursive

目标平台:

 

指定内存模型(32 位或 64 位)。 

-m32 | —m64

 

为优化器指定目标平台指令集 

-xarch=a

 

为优化器指定目标高速缓存属性 

-xcache=a

 

为优化器指定目标处理器 

-xchip=a

 

为优化器指定目标平台 

-xtarget=a

3.3.1 常用选项

编译器有许多可通过可选命令行参数选择的功能。下面的简要列表列出了一些常用选项,让您一睹为快。

表 3–4 常用选项

操作  

选项  

调试-在例程之间进行全局程序检查以确保参数、通用块等的一致性。 

–Xlist

调试-生成其他用于启用 dbx 和调试的符号表信息。

–g

性能-调用优化器以生成运行速度更快的程序。 

–O[n]

性能-使用一组预先确定的选项,为本机平台生成高效的编译时和运行时。 

–fast

动态 (–Bdynamic) 或静态 (–Bstatic) 库绑定。

–Bx

仅编译-禁止链接;为每个源文件生成一个 .o 文件。

–c

输出文件-将可执行输出文件命名为 nm 而不是 a.out

–o nm

源代码-编译固定格式的 Fortran 源代码。 

-fixed

3.3.2 宏标志

某些选项标志是可扩展为由其他标志组成的特定集合的宏。之所以提供这些选项标志,是为了便于指定通常一起用来选择某项功能的多个选项。

表 3–5 宏选项标志

选项标志  

扩展  

-dalign

-xmemalign=8s -aligncommon=16

-f

-aligncommon=16

-fast

有关完整的当前扩展,请参见 —fast 说明。

-fnonstd

-fns -ftrap=common

-xia=widestneed

-xinterval=widestneed -ftrap=%none -fns=no -fsimple=0

-xia=strict

-xinterval=strict -ftrap=%none -fns=no -fsimple=0

-xtarget

-xarch=a -xcache=b -xchip=c

命令行上跟在宏标志后面的设置将覆盖或增加宏扩展。

3.3.3 向后兼容性和传统选项

提供以下选项的目的是为了与早期发行版的编译器和某些 Fortran 传统功能实现向后兼容。

表 3–6 向后兼容性选项

操作  

选项  

通过 ENTRY 语句保留实际参数。

-arg=local

允许为常量参数赋值。 

–copyargs

在调用参数列表中将霍尔瑞斯常数视为字符或无类型。 

-xhasc[={yes|no}]

支持 Fortran 77 扩展和约定 

-f77

非标准运算—允许非标准运算。 

–fnonstd

为主机系统优化性能。 

–native

DO 循环—使用单程 DO 循环。

–onetrip

允许存在传统的别名情况 

-xalias=keywords

建议在生成可移植的 Fortran 程序时不要使用这些选项标志。

3.3.4 已过时的选项标志

下面的选项被认为是已过时的,不应使用它们。在编译器的以后发行版本中可能会删除这些选项。

表 3–7 过时的 f95 选项

选项标志  

等效于  

-a

-xprofile=tcov

-cg89

-xtarget=ss2

-cg92

-xtarget=ss1000

-native

-xtarget=native

-noqueue

许可证排队。不再需要。 

-p

分析。使用 -pg 或性能分析器

-pic

-xcode=pic13

-PIC

-xcode=pic32

-sb

忽略。 

-sbfast

忽略。 

-silent

忽略。 

-xarch={v7,v8,v8a}

使用 —m32