选择优化执行性能的选项。
该选项定义为其他选项的特殊选择集,它会随版本和编译器的不同而变化。另外,-fast 选择的某些选项并非在所有平台上都可用。使用 -dryrun 标志进行编译可查看 -fast 的扩展。
-fast 可为某些基准测试应用程序提供高性能。但是,对于您的应用程序,选项的特定选择可能是合适的,也可能是不合适的。使用 -fast 是编译应用程序以获得最佳性能的良好起点。但是,仍然可能需要进行其他调整。如果用 -fast 编译时程序不能正常运行,请仔细查看组成 -fast 的各个选项,只调用那些适用于您程序的选项,使程序正常运行。
另请注意,用 -fast 编译的程序对于一些数据集可能会表现出良好的性能和精确的结果,而对于另一些数据集则不然。对于那些依赖浮点运算的特殊属性的程序,请避免用 -fast 进行编译。
由于 -fast 选择的某些选项具有链接含义,因此,如果在不同的步骤中进行编译和链接,还请务必用 -fast 进行链接。
–fast 会选用以下选项:
-xtarget=native 硬件目标。 如果打算在编译计算机之外的其他目标计算机上运行程序,请在 -fast 之后加上代码生成器选项。例如: f95 -fast -xtarget=ultraT2 ...
-libmil 选项,用于系统提供的内联扩展模板。 对于依赖异常处理的 C 函数,请在 -fast 之后加上 -nolibmil(如 -fast -nolibmil)。如果使用了 -libmil,则使用 errno 或 matherr(3m) 无法检测到异常。
-fsimple=2 选项,用于主动浮点优化。如果要求严格遵循 IEEE 754 标准,则 –fsimple=2 是不合适的。请参见3.4.36 –fsimple[={ 1|2|0}]。
-dalign 选项可为通用块中的双精度和四精度数据生成双字装入和存储。使用此选项可以在通用块中生成非标准的 Fortran 数据对齐。
-xvector=lib 使用向量参数将 DO 循环内的某些数学库调用变换为对向量化库等效例程的单个调用。(SPARC)
–fns 可选择非标准浮点运算异常处理和渐进下溢。请参见3.4.30 –fns[ ={yes| no}]。
选择 -fround=nearest,因为 —xvector 和 —xlibmopt 要求使用该选项。(Solaris)
-ftrap=common 用于捕获常见的浮点异常,在 f95 中处于启用状态。
-nofstore 对强制表达式具有结果精度这一行为加以取消。(x86)
-xregs=frameptr 允许编译器将帧指针寄存器用作未分配的被调用方保存寄存器。在 -fast 之后指定 -xregs=no%frameptr,帧指针寄存器将不会作为通用寄存器使用。(x86)
可以对此列表进行增减,方法是在 -fast 选项之后加上其他选项,如下所示:
f95 -fast -fsimple=1 -xnolibmopt ...
它会覆盖 -fsimple=2 选项,并禁用由 -fast 选择的 -xlibmopt。
由于 -fast 会调用 -dalign、-fns 和 -fsimple=2,因此用 -fast 编译的程序会导致非标准浮点运算、非标准数据对齐以及非标准表达式求值顺序。对于大多数程序来说,这些选择可能是不合适的。
请注意,由 -fast 标志选择的一组选项会随各个编译器发行版而发生变化。使用 -dryrun 调用编译器可显示 -fast 扩展:
<sparc>%f95 -dryrun -fast |& grep ### ### command line files and options (expanded): ### -dryrun -xO5 -xarch=sparcvis2 -xcache=64/32/4:1024/64/4 -xchip=ultra3i -xdepend=yes -xpad=local -xvector=lib -dalign -fsimple=2 -fns=yes -ftrap=common -xlibmil -xlibmopt -fround=nearest |