Floating-point and integer control

Specifying the details of how your applications perform calculations can allow you to take better advantage of your system's floating-point performance and precision, including how to direct rounding. However, keep in mind that strictly adhering to IEEE floating-point specifications can impact the performance of your application. Use the options in the following table to control trade-offs between floating-point performance and adherence to IEEE standards.
Table 1. Floating-point and integer control options
Option name Equivalent pragma name Description
-qbitfields None.

Specifies whether bit fields are signed or unsigned.

-qchars #pragma options chars, #pragma chars

Determines whether all variables of type char is treated as signed or unsigned.

-qenum #pragma options enum, #pragma enum

Specifies the amount of storage occupied by enumerations.

-qfloat #pragma options float

Selects different strategies for speeding up or improving the accuracy of floating-point calculations.

-qldbl128, -qlongdouble #pragma options ldbl128

Increases the size of long double types from 64 bits to 128 bits.

-qlonglit None.

In 64-bit mode, when determining the implicit types for integer literals, the compiler behaves as if an l or L suffix were added to integral literals with no suffix or with a suffix consisting only of u or U.

-qstrict

#pragma options [no]strict

#pragma option_override (function_name, "opt (suboption_list)")

Ensures that optimizations that are done by default at the -O3 and higher optimization levels, and, optionally at -O2, do not alter the semantics of a program.

-y None.

Specifies the rounding mode for the compiler to use when evaluating constant floating-point expressions at compile time.



Voice your opinion on getting help information Ask IBM compiler experts a technical question in the IBM XL compilers forum Reach out to us