About this document
Using 32-bit and 64-bit modes
Assigning long values
Assigning constant values to long variables
Bit-shifting long values
Assigning pointers
Aligning aggregate data
Calling Fortran code
Using XL C/C++ with Fortran
Identifiers
Corresponding data types
Character and aggregate data
Function calls and parameter passing
Pointers to functions
Sample program: C/C++ calling Fortran
Aligning data
Using alignment modes
Alignment of aggregates
Alignment of bit fields
Using alignment modifiers
Precedence rules for scalar variables
Precedence rules for aggregate variables
Handling floating point operations
Floating-point formats
Handling multiply-add operations
Compiling for strict IEEE conformance
Handling floating-point constant folding and rounding
Matching compile-time and runtime rounding modes
Handling floating-point exceptions
Using C++ templates
Using the -qtempinc compiler option
Example of -qtempinc
Regenerating the template instantiation file
Using -qtempinc with shared libraries
Using the -qtemplateregistry compiler option
Recompiling related compilation units
Switching from -qtempinc to -qtemplateregistry
Constructing a library
Compiling and linking a library
Compiling a static library
Compiling a shared library
Linking a library to an application
Linking a shared library to another shared library
Initializing static objects in libraries (C++)
Assigning priorities to objects
Order of object initialization across libraries
Optimizing your applications
Using optimization levels
Techniques used in optimization level 2
Techniques used in optimization level 3
Techniques used in optimization levels 4 and 5
Getting the most out of optimization levels 2 and 3
Optimizing for system architecture
Getting the most out of target machine options
Using high-order loop analysis and transformations
Getting the most out of -qhot
Using shared-memory parallelism (SMP)
Getting the most out of -qsmp
Using interprocedural analysis
Getting the most from -qipa
Using profile-directed feedback
Example of compilation with pdf and showpdf
Other optimization options
Coding your application to improve performance
Find faster input/output techniques
Reduce function-call overhead
Manage memory efficiently
Optimize variables
Manipulate strings efficiently
Optimize expressions and program logic
Optimize operations in 64-bit mode
Using the high performance libraries
Using the Mathematical Acceleration Subsystem (MASS)
Using the scalar library
Using the vector libraries
Compiling and linking a program with MASS
Using the Basic Linear Algebra Subprograms (BLAS)
BLAS function syntax
Linking the libxlopt library
Parallelizing your programs
Countable loops
Enabling automatic parallelization
Using OpenMP directives
Shared and private variables in a parallel environment
Reduction operations in parallelized loops
Index