24.05.2014 Views

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

-qalias Option<br />

Syntax<br />

-qalias={[no]aryovrlp | [no]intptr | [no]pteovrlp | [no]std}...<br />

ALIAS( {[NO]ARYOVRLP | [NO]INTPTR | [NO]PTEOVRLP | [NO]STD}... )<br />

Indicates whether a program contains certain categories of aliasing. The compiler<br />

limits the scope of some optimizations when there is a possibility that different<br />

names are aliases <strong>for</strong> the same storage locations. See “Optimizing <strong>XL</strong> <strong>Fortran</strong><br />

Programs” on page 305 <strong>for</strong> in<strong>for</strong>mation on aliasing strategies you should consider.<br />

Arguments<br />

aryovrlp | noaryovrlp<br />

Indicates whether the compilation units contain any array assignments<br />

between storage-associated arrays. If not, specify noaryovrlp to improve<br />

per<strong>for</strong>mance.<br />

intptr | nointptr<br />

Indicates whether the compilation units contain any integer POINTER<br />

statements. If so, specify INTPTR.<br />

pteovrlp | nopteovrlp<br />

Indicates whether any pointee variables may be used to refer to any data<br />

objects that are not pointee variables, or whether two pointee variables<br />

may be used to refer to the same storage location. If not, specify<br />

NOPTEOVRLP.<br />

std | nostd<br />

Indicates whether the compilation units contain any nonstandard aliasing<br />

(which is explained below). If so, specify nostd.<br />

Rules<br />

An alias exists when an item in storage can be referred to by more than one name.<br />

The <strong>Fortran</strong> 90 and <strong>Fortran</strong> 95 standards allow some types of aliasing and disallow<br />

some others. The sophisticated optimizations that the <strong>XL</strong> <strong>Fortran</strong> compiler<br />

per<strong>for</strong>ms increase the likelihood of undesirable results when nonstandard aliasing<br />

is present, as in the following situations:<br />

v<br />

v<br />

v<br />

v<br />

The same data object is passed as an actual argument two or more times in the<br />

same subprogram reference. The aliasing is not valid if either of the actual<br />

arguments becomes defined, undefined, or redefined.<br />

A subprogram reference associates a dummy argument with an object that is<br />

accessible inside the referenced subprogram. The aliasing is not valid if any part<br />

of the object associated with the dummy argument becomes defined, undefined,<br />

or redefined other than through a reference to the dummy argument.<br />

A dummy argument becomes defined, undefined, or redefined inside a called<br />

subprogram, and where the dummy argument was not passed as an actual<br />

argument to that subprogram.<br />

Subscripting beyond the bounds of an array within a common block.<br />

Applicable Product Levels<br />

-qalias=nostd replaces the option -qxflag=xalias and makes it obsolete.<br />

The introduction of the -qipa option does not remove the need <strong>for</strong> -qalias.<br />

122 <strong>XL</strong> <strong>Fortran</strong> <strong>Enterprise</strong> <strong>Edition</strong> <strong>for</strong> <strong>AIX</strong> : User’s <strong>Guide</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!