Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
E77790.pdf
Скачиваний:
2
Добавлен:
16.05.2024
Размер:
1.29 Mб
Скачать

3.4Options Reference

If any part of a program is compiled or linked on an x86 platform with —m64, then all parts of the program must be compiled with one of these options as well. For details on the various Intel instruction set architectures (SSE, SSE2, SSE3, SSSE3, and so on) refer to the Intel-64 and IA-32 Intel Architecture Software Developer's Manual

Programs compiled with -xarch set to sse, sse2, sse2a, or sse3 and beyond must be run on platforms supporting these features and extensions..

With this release, the default instruction set and the meaning of -xarch=generic has changed to sse2. Now, compiling without specifying a target platform option results in an sse2 binary incompatible with older Pentium III or earlier systems.

If you compile and link in separate steps, always link using the compiler and with same - xarch setting to ensure that the correct startup routine is linked.

Arithmetic results on x86 may differ from results on SPARC due to the x86 80-byte floating-point registers. To minimize these differences, use the -fstore option or compile with -xarch=sse2 if the hardware supports SSE2.

Running programs compiled with these -xarch options on platforms that are not enabled with the appropriate features or instruction set extensions could result in segmentation faults or incorrect results occurring without any explicit warning messages.

This warning extends also to programs that employ .il inline assembly language functions or __asm() assembler code that utilize SSE, SSE2, SSE2a, and SSE3 (and beyond) instructions and extensions.

3.4.114 –xassume_control[=keywords]

Set parameters to control ASSUME pragmas.

Use this flag to control the way the compiler handles ASSUME pragmas in the source code.

The ASSUME pragmas provide a way for the programmer to assert special information that the compiler can use for better optimization. These assertions may be qualified with a probability value. Those with a probability of 0 or 1 are marked as certain; otherwise they are considered non-certain.

You can also assert, with a probability or certainty, the trip count of an upcoming DO loop, or that an upcoming branch will be taken.

See “2.3.1.8 The ASSUME Directives” on page 34, for a description of the ASSUME pragmas recognized by the f95 compiler.

The keywords on the -xassume_control option can be a single sub-option keyword or a comma-separated list of keywords. The keyword sub-options recognized are:

110 Oracle Developer Studio 12.6: Fortran User's Guide • July 2017

 

 

3.4 Options Reference

 

 

 

 

 

 

 

optimize

The assertions made on ASSUME pragmas affect optimization of the program.

 

 

 

 

check

The compiler generates code to check the correctness of all assertions marked

 

 

as certain, and emits a runtime message if the assertion is violated; the program

 

 

continues if fatal is not also specified.

 

 

 

 

fatal

When used with check, the program will terminate when an assertion marked

 

 

certain is violated.

 

 

 

 

retrospective[:d]

The d parameter is an optional tolerance value, and must be a real positive constant

 

 

less than 1. The default is ".1". retrospective compiles code to count the truth or

 

 

falsity of all assertions. Those outside the tolerance value d are listed on output at

 

 

program termination.

 

 

 

 

%none

All ASSUME pragmas are ignored.

 

 

 

The compiler default is

-xassume_control=optimize

This means that the compiler recognizes ASSUME pragmas and they will affect optimization, but no checking is done.

If specified without parameters, -xassume_control implies

-xassume_control=check,fatal

In this case the compiler accepts and checks all certain ASSUME pragmas, but they do not affect optimization. Assertions that are invalid cause the program to terminate.

3.4.115 –xautopar

Synonym for -autopar.

3.4.116 –xcache=c

Define cache properties for the optimizer.

This option specifies the cache properties that the optimizer can use. It does not guarantee that any particular cache property is used.

Although this option can be used alone, it is part of the expansion of the –xtarget option; it is provided to allow overriding an -xcache value implied by a specific -xtarget option.

Chapter 3 • Fortran Compiler Options

111

Соседние файлы в предмете Информационные и сетевые технологии