-qvecnvol

Category

Portability and migration

@PROCESS

None.

Purpose

Specifies whether to use volatile or non-volatile vector registers.

Volatile vector registers are those registers whose value is not preserved across function calls or across save context, jump or switch context system library functions.

Syntax

Read syntax diagramSkip visual syntax diagram
        .-novecnvol-.   
>>- -q--+-vecnvol---+------------------------------------------><

Defaults

-qnovecnvol

Usage

-qvecnvol instructs the compiler to use both volatile and non-volatile vector registers. -qnovecnvol instructs the compiler to use only volatile vector registers.

This option is required for programs where there is risk of interaction between modules built with AIX® libraries before AIX 5.3TL3 and vector register use. Restricting the compiler to use only volatile registers will make your vector programs safe, but it potentially forces the compiler to store vector data to memory more often and thus might reduce the performance of your application.

Notes:
  • This option is supported on AIX 5.3TL3 or higher.
  • To use -qvecnvol, you need bos.adt.include version 5.3.0.30 or greater installed on your system.
  • The -qnovecnvol option performs independently of the -qsimd option and the NOSIMD directive.
  • Before AIX 5.3TL3, only 20 volatile registers (vr0-vr19) are used by default; the 12 non-volatile vector registers (vr20 - vr31) are not used. You can use these registers only if -qvecnvol is in effect.
  • Only enable -qvecnvol for older programs that do not perform saves and restores to non-volatile registers. Using -qvecnvol and linking to such code may result in a runtime failure.

Related information