Oracle® Developer Studio 12.5:Fortran 用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

3.3 选项摘要

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

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

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

表 5  按功能分组的编译器选项
功能
选项标志
编译模式:
仅编译;不生成可执行文件
-c
显示由驱动程序生成的命令,但不进行编译
-dryrun
支持 Fortran 77 扩展和兼容性
-f77
不要替换其内容不是由相关 Fortran 模块的编译进行更改的模块文件
-keepmod
保留在编译期间所创建的临时文件。
-keeptmp
指定要将已编译的 .mod 模块文件写入的路径
-moddir=path
指定要编写的对象文件、库文件或可执行文件的名称
-o filename
进行编译并只生成汇编代码
-S
将符号表与可执行文件分离
-s
禁止编译器消息(错误消息除外)
-silent
定义临时文件所在目录的路径
-temp=path
显示每个编译阶段占用的时间
-time
显示编译器的版本号及其阶段
-V
详细消息
-v
指定非标准别名情况
-xalias=list
使用多个处理器进行编译
-xjobs=n
生成 make 依赖项
-xM
(Oracle Solaris) 将调试信息从对象文件链接到可执行文件
-xs
已编译的代码:
对于外部名称,增加/删除尾随下划线
-ext_names=x
内联指定的用户函数
-inline=list
与编译位置无关的代码
-KPIC/-kpic
内联某些数学库例程
-libmil
(x86) 在堆栈中保存基于寄存器的函数参数的副本
-preserve_argvalues
STOP 将整数状态值返回给 shell
-stop_status[=yn]
指定代码地址空间
-xcode=x
-inline 等效。
-xinline
手动更改编译器用来确定何时内联函数调用的试探式方法
-xinline_param
生成在编译器内联函数时写入标准输出的报告
-xinline_report
启用预取指令
-xprefetch[=x]
指定可选寄存器的使用
-xregs=x
指定缺省数据映射
-xtypemap=x
数据对齐:
指定对齐 COMMON 块中的数据
-aligncommon[=n]
强制对齐 COMMON 块数据以允许双字获取/存储
-dalign
强制所有数据按 8 字节边界对齐
-dbl_align_all
按 8 字节边界对齐 COMMON 块数据
-f
支持 little-endian 和 big-endian 平台之间的文件共享。
-xfilebyteorder
指定内存对齐和行为
-xmemalign[=ab]
调试:
启用运行时下标范围检查
-C
为使用 dbx 调试而进行编译
-g
标志未声明变量的使用
-u
检查 !$PRAGMA ASSUME 断言
-xassume_control=check
检查在运行时堆栈是否溢出
-xcheck=stkovf
启用运行时任务普通检查
-xcommonchk
控制发出多少调试和监测信息
-xdebuginfo
为性能分析器进行编译
-xF
控制文件静态变量的全局化,但是不控制函数的全局化
-xglobalize
保留未引用函数和变量的定义
-xkeep_unref
(已过时)生成交叉引用列表
-Xlistx
在没有对象文件的情况下启用调试
-xs
诊断:
标志非标准扩展名的使用
-ansi
禁止显示指定的警告消息
-erroff=
与错误消息一起显示错误标记名称
-errtags
显示编译器选项的摘要
-flags, -help
显示编译器的版本号及其阶段
-V
详细消息
-v
详细的并行化消息
-vpara
显示/禁止警告消息
-wn
(Oracle Solaris) 将调试信息从对象文件链接到可执行文件
-xs
链接和库:
允许/要求动态/静态库
-Bx
只允许动态/静态库链接
-dy, -dn
生成动态(共享对象)库
-G
为动态库指定名称
-hname
将目录增加到库搜索路径
-Lpath
与库 libname.alibname.so 链接
-lname
不将库搜索路径生成到可执行文件中。
-norunpath
将运行时库搜索路径生成到可执行文件中
-Rpath
禁用递增链接程序 ild
-xildoff
与优化的数学库链接
-xlibmopt
与 Oracle Developer Studio 性能库进行链接
-xlic_lib=sunperf
在各个函数启动之前保留内存区域
-xpatchpadding
指定程序是否包含对动态绑定符号的引用
-xunboundsym
链接编辑器选项
-zx
在不重定位的情况下生成纯库
-ztext
数字和浮点:
使用非标准浮点首选项
-fnonstd
选择非标准浮点
-fns
启用输入过程中的运行时浮点溢出
-fpover
选择 IEEE 浮点舍入模式
-fround=r
选择浮点优化级别
-fsimple=n
选择浮点捕获模式
-ftrap=t
指定用于格式化输入/输出的舍入方法
-iorounding=mode
将单精度常数提升为双精度常量
-r8const
启用区间运算并设置相应的浮点环境(包括 -xinterval
-xia[=e]
启用区间运算扩展
-xinterval[=e]
优化与性能:
分析循环以了解数据依赖性
-depend
使用所选的选项进行优化
-fast
指定程序不能一次在多个线程中执行 I/O。
-fserialio
指定优化级别
-On
填充数据布局以便高效使用高速缓存
-pad[=p]
在内存堆栈上分配局部变量
-stackvar
启用循环解开
-unroll[=m]
调用过程间优化传递
-xipo[=n]
可避免通过编译器进行的初始传递期间的优化而仅在链接时优化,从而缩短编译时间
-xipo_build
#pragma OPT 设置最高优化级别
-xmaxopt[=n]
针对编译后优化进行编译
-xbinopt=prepare
启用/调整编译器生成的预取指令
-xprefetch=list
控制预取指令的自动生成
-xprefetch_level=n
启用性能分析数据的生成或使用
-xprofile=p
断言不会出现基于内存的陷阱
-xsafe=mem
使驱动程序在链接行上包括特殊映射文件。
-xsegment_align
不执行增加代码大小的优化
-xspace
指定当多个进程同时在系统上运行时应用程序将会运行
-xthroughput
自动生成对向量库函数的调用
-xvector[=yn]
并行化:
启用 DO 循环的自动并行化
-autopar
-xopenmp=parallel 等效。
-fopenmp
显示循环的并行化信息
-loopinfo
为手动编码的多线程编程进行编译
-mt
接受 OpenMP API 指令。-xopenmp 选项标志接受以下子选项关键字:parallelnooptnone
-xopenmp[=keyword]
识别具有自动并行化的循环中的约简操作
-reduction
详细的并行化消息
-vpara
指定当多个进程同时在系统上运行时应用程序将会运行
-xthroughput
源代码:
定义预处理程序符号
-Dname[=val]
取消定义预处理程序符号
-Uname
接受扩展(250 个字符)源行
-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 常用选项

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

表 6  常用选项
操作
选项
调试-在例程之间进行全局程序检查以确保参数、通用块等的一致性。
–Xlist
调试-生成其他用于启用 dbx 和调试的符号表信息。
–g
性能-调用优化器以生成运行速度更快的程序。
–O[n]
性能-使用一组预先确定的选项,为本机平台生成高效的编译时和运行时。
–fast
动态 (–Bdynamic) 或静态 (–Bstatic) 库绑定。
–Bx
仅编译-禁止链接;为每个源文件生成一个 .o 文件。
–c
输出文件-将可执行输出文件命名为 nm 而不是 a.out
–o nm
源代码-编译固定格式的 Fortran 源代码。
-fixed

3.3.2 宏标志

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

表 7  宏选项标志
选项标志
扩展
-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 传统功能实现向后兼容。

表 8  向后兼容性选项
操作
选项
通过 ENTRY 语句保留实际参数
-arg=local
允许为常量参数赋值。
–copyargs
在调用参数列表中将霍尔瑞斯常数视为字符或无类型。
-xhasc[={yes|no}]
支持 Fortran 77 扩展和约定
-f77
非标准运算—允许非标准运算。
–fnonstd
为主机系统优化性能。
–native
DO 循环—使用单程 DO 循环。
–onetrip
允许存在传统的别名情况
-xalias=keywords

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

3.3.4 已过时的选项标志

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

表 9  过时的 f95 选项
选项标志
等效
-a
-xprofile=tcov
-native
-xtarget=native
-noqueue
许可证排队。不再需要。
-p
分析。使用 -pg 或性能分析器
-pic
-xcode=pic13
-PIC
-xcode=pic32
-silent
已忽略。
-xarch={v7,v8,v8a}
使用 —m32