2.3.7 /Q
Microsoft has selected the /Q option as a means for compilers on the various hardware platforms to provide options that are not generally common with other Windows NT compilers. /QA has been chosen as the common prefix for Alpha AXP options. CLAXP-specific options for the Alpha AXP architecture include:
- /QAgl
Granularity: longword. This is the default value, which specifies that for data that may be accessed by multiple threads of execution, the compiler will generate fetches and stores in units of longwords (4 bytes of data on 4-byte address boundaries). By default, multithreaded applications on Windows NT require longword granularity in order to guarantee correct operation. On Alpha AXP systems, this produces slightly less efficient code than quadword granularity. - /QAgq
Granularity: quadword. Specifies that the compiler is allowed to fetch and store data in units of quadwords (8 bytes of data on 8-byte address boundaries) even if they might be accessed by multiple threads of execution. For practical purposes, the compiler has to assume that most global data and most data accessed through pointers might be accessible to multiple threads of execution. However, an application that is known by the developer to be single threaded will have no data accessible to multiple threads of execution. Such applications should be compiled with this option to get the most efficient code for Alpha AXP. - /QAieee
Same as QAieee1 (see below). - /QAieee0
IEEE floating point NaNs, Infinities, and denormals are not supported in the compiled code. Underflows are quickly forced to zero, and the use of a NaN or Infinity raises an exception. This is the default value, and should be used for all applications except those which require IEEE-compliant floating point exception behavior, since it produces the fastest execution speed. Runtime library routines may still produce NaNs and denormals, however, so the use of _matherr to handle those situations is recommended. If an application does require support for IEEE NaNs and denormals, /QAieee (equivalently /QAieee1) should be used. - /QAieee1
IEEE floating point NaNs, Infinities, and denormals are supported. This value should be used for any application needing typical IEEE floating point exceptional value behavior. - /QAieee2
Same as /QAieee1, but IEEE Inexact Operation exceptions are also enabled. This value should only be used for applications requiring the IEEE inexact operation exception to be raised (this is almost never needed).