- Table of Contents
- About This Manual
- Related Publications
- Obtaining Publications
- Conventions
- Reader Comments
- 1. Introduction
- 1.1. Setting up the C/C++ Programming Environment
- 1.2. General Compiler Description
- 1.2.1. Cray C++ Compiler
- 1.2.2. Cray Standard C Compiler
- 1.3. Standard Template Library (STL)
- 2. Compiler Commands
- 2.1. CC Command
- 2.2. cc Command
- 2.2.1. c89 Command
- 2.2.2. cpp Command
- 2.3. Command-line Options
- 2.4. Language (Standard Conformance)
- 2.4.1. -h [no]conform (CC, cc Commands), -h [no]stdc (cc Command)
- 2.4.2. -h cfront (CC Command)
- 2.4.3. -h [no]exceptions (CC Command)
- 2.4.4. -h [no]anachronisms (CC Command)
- 2.4.5. -h new_for_init (CC Command)
- 2.4.6. -h [no]tolerant (cc Command)
- 2.5. Language (Templates)
- 2.5.1. -h [no]autoinstantiate (CC Command)
- 2.5.2. -h instantiate=mode (CC Command)
- 2.5.3. -h [no]implicitinclude (CC Command)
- 2.5.4. -h remove_instantiation_flags (CC Command)
- 2.5.5. -h prelink_local_copy (CC Command)
- 2.5.6. -h prelink_copy_if_nonlocal (CC Command)
- 2.6. Language (Virtual Functions)
- 2.6.1. -h forcevtbl, -h suppressvtbl
(CC Command)
- 2.7. Language (General)
- 2.7.1. -h keep=file ( CC Command)
- 2.7.2. -h restrict=args ( CC, cc Commands)
- 2.7.3. -h [no]calchars (CC, cc Commands)
- 2.7.4. -h [no]signedshifts (CC, cc Commands)
- 2.7.5. -h [no]stack (CC, cc Commands)
- 2.8. Optimization (General)
- 2.8.1. -O [level] (CC, cc, c89 Commands)
- 2.8.2. -h [no]aggress (CC, cc Commands)
- 2.8.3. -h [no]intrinsics (CC, cc Commands)
- 2.8.4. -h [no]pattern (CC, cc Commands)
- 2.8.5. -h [no]overindex (CC, cc Commands)
- 2.9. Optimization (Multi-Streaming Processor) (Deferred Implementation)
- 2.9.1. -h streamn (CC, cc Commands)
- 2.10. Optimization (Vector)
- 2.10.1. -h [no]ivdep (CC, cc Commands)
- 2.10.2. -h vectorn (CC, cc Commands)
- 2.10.3. -h [no]vsearch (CC, cc Commands)
- 2.11. Optimization (Task)
- 2.11.1. -h taskn (CC, cc Commands)
- 2.11.2. -h taskprivate (cc Command)
- 2.11.3. -h taskcommon, -h common (CC, cc commands)
- 2.11.4. -h [no]taskinner (CC, cc Commands)
- 2.11.5. -h [no]threshold (CC, cc Commands)
- 2.12. Optimization (Inline)
- 2.12.1. -h inlinen (CC, cc Commands)
- 2.12.2. -h inlinefrom=file (CC, cc Commands)
- 2.13. Optimization (Scalar)
- 2.13.1. -h [no]interchange (CC, cc Commands)
- 2.13.2. -h scalarn (CC, cc Commands)
- 2.13.3. -h [no]align (CC, cc Commands)
- 2.13.4. -h [no]bl (CC, cc
Commands)
- 2.13.5. -h [no]reduction (CC, cc Commands)
- 2.13.6. -h [no]zeroinc (CC, cc Commands)
- 2.14. Optimization (UNICOS/mk Specific)
- 2.14.1. -h pipelinen (CC, cc Commands)
- 2.14.2. -h [no]unroll (CC, cc Commands)
- 2.14.3. -h [no]jump (CC, cc Commands)
- 2.14.4. -h [no]split (CC, cc Commands)
- 2.15. Math
- 2.15.1. -h matherror=method (CC, cc Commands)
- 2.15.2. -h [no]fastmd (CC, cc Commands)
- 2.15.3. -h [no]fastmodulus (CC, cc Commands)
- 2.15.4. -h [no]ieeeconform (CC, cc Commands)
- 2.15.5. -h [no]fastfpdivide (CC, cc Commands)
- 2.15.6. -h [no]rounddiv (CC, cc Commands)
- 2.15.7. -h [no]trunc[=n] (CC, cc Commands)
- 2.16. Analysis Tools
- 2.16.1. -F (CC, cc
Commands)
- 2.16.2. -h [no]atexpert (CC, cc Commands)
- 2.16.3. -h [no]apprentice (CC, cc Commands)
- 2.16.4. -h [no]listing (CC, cc Commands)
- 2.17. Debugging
- 2.17.1. -G level (CC, cc Commands) and -g
(CC, cc, c89 Commands)
- 2.17.2. -h [no]bounds (cc Command)
- 2.17.3. -h indef, -h zero (CC, cc Commands)
- 2.18. Messages
- 2.18.1. -h msglevel_n (CC, cc Commands)
- 2.18.2. -h [no]message=n[: n...] (CC, cc Commands)
- 2.18.3. -h report=args (CC, cc Commands)
- 2.18.4. -h [no]abort (CC, cc Commands)
- 2.18.5. -h errorlimit[=n] (CC, cc Commands)
- 2.19. Compilation Phases
- 2.19.1. -E (CC, cc, c89, cpp Commands)
- 2.19.2. -P (CC, cc, cpp Commands)
- 2.19.3. -h feonly (CC, cc
Commands)
- 2.19.4. -S (CC, cc
Commands)
- 2.19.5. -c (CC, cc, c89 Commands)
- 2.19.6. -#, -##, and -###
(CC, cc, cpp Commands)
- 2.19.7. -Wphase["opt..."] (CC, cc Commands)
- 2.19.8. -Yphase,dirname
(CC, cc, c89, cpp Commands)
- 2.20. Preprocessing
- 2.20.1. -I incldir ( CC, cc, c89, cpp Commands)
- 2.20.2. -D macro[=def] (CC, cc, c89, cpp Commands)
- 2.20.3. -U macro (CC, cc, c89, cpp
Commands)
- 2.20.4. -M (CC, cc, cpp Commands)
- 2.20.5. -N (cpp Command)
- 2.20.6. -C (CC, cc, cpp Commands)
- 2.20.7. -h [no]pragma=name[: name...] (CC, cc Commands)
- 2.21. Loader
- 2.21.1. -l libfile (CC, cc, c89 Commands)
- 2.21.2. -L libdir (CC, cc, c89 Commands)
- 2.21.3. -o outfile (CC, cc, c89 Commands)
- 2.21.4. -d string (CC, cc Commands)
- 2.21.5. -s (CC, cc, c89 Commands)
- 2.22. General
- 2.22.1. -V (CC, cc, cpp Commands)
- 2.22.2. -X npes (CC, cc Commands)
- 2.22.3. -h ident=name (CC, cc Commands)
- 2.23. Command-line Examples
- 2.24. Environment Variables
- 3. Cray C and C++ Extensions
- 3.1. Restricted Pointers
- 3.1.1. Function Parameters
- 3.1.2. File Scope
- 3.1.3. Block Scope
- 3.1.4. Unrestricted Pointers
- 3.1.5. Comparison with #pragma ivdep
- 3.1.6. Implementation Limits
- 3.2. long long and unsigned long long
Data Types
- 3.3. // Comments
- 3.4. Complex Data Types
- 3.4.1. Complex Usage
- 3.4.2. Conversion to and from Complex
- 3.4.3. Arithmetic Conversion for Complex
- 3.5. Variable Length Arrays
- 3.5.1. Declarator Restrictions
- 3.5.2. Variable Length Array (VLA) Declarators
- 3.5.3. Function Declarators and Variable Length Arrays
- 3.5.4. Variable Length Array Type Definitions
- 3.5.5. sizeof Operator and Variable Length Arrays
- 3.5.6. goto Statements
- 3.5.7. switch Statement
- 3.5.8. setjmp and longjmp Functions
- 3.6. fortran Keyword
- 3.7. Hexadecimal Floating-point Constants
- 3.8. Arithmetic Conversions
- 4. #pragma Directives
- 4.1. Protecting Directives
- 4.2. Directives in Cray C++
- 4.3. Loop Directives
- 4.4. Alternative Directive Form: _Pragma
- 4.5. General Directives
- 4.5.1. besu Directive
- 4.5.2. [no]bounds Directive (C Compiler)
- 4.5.3. duplicate Directive (C Compiler)
- 4.5.4. message Directive
- 4.5.5. [no]opt Directive
- 4.5.6. uses_eregs Directive
- 4.5.7. soft Directive
- 4.5.8. vfunction Directive
- 4.5.9. ident Directive
- 4.6. Instantiation Directives
- 4.7. Vectorization Directives
- 4.7.1. ivdep Directive
- 4.7.2. novector Directive
- 4.7.3. novsearch Directive
- 4.7.4. prefervector Directive
- 4.7.5. shortloop and shortloop128 Directives
- 4.8. Tasking Directives
- 4.8.1. parallel and endparallel Directives
- 4.8.2. taskloop Directive
- 4.8.3. endloop Directive
- 4.8.4. case and endcase Directives
- 4.8.5. guard and endguard Directives
- 4.8.6. taskprivate Directive (C Compiler)
- 4.8.7. taskshared Directive (C Compiler)
- 4.8.8. taskcommon Directive
- 4.8.9. common Directive
- 4.8.10. prefertask Directive
- 4.8.11. Arguments to Tasking Directives
- 4.9. Multi-Streaming Processor (MSP) Directives (Deferred Implementation)
- 4.9.1. #pragma nostream Directive
- 4.9.2. #pragma preferstream Directive
- 4.10. Scalar Directives
- 4.10.1. align Directive
- 4.10.2. cache_align Directive
- 4.10.3. cache_bypass Directive
- 4.10.4. concurrent Directive
- 4.10.5. nointerchange Directive
- 4.10.6. noreduction Directive
- 4.10.7. split Directive
- 4.10.8. suppress Directive
- 4.10.9. symmetric Directive
- 4.10.10. unroll Directive
- 4.11. Inlining Directives
- 4.11.1. inline Directive
- 4.11.2. noinline Directive
- 5. Template Instantiation
- 5.1. Automatic Instantiation
- 5.2. Instantiation Modes
- 5.3. Instantiation #pragma Directives
- 5.4. Implicit Inclusion
- 6. Predefined Macros
- 6.1. Macros Required by the C and C++ Standards
- 6.2. Macros Based on the Host Machine
- 6.3. Macros Based on the Target Machine
- 6.4. Macros Based on the Compiler
- 7. Debugging C/C++ Code
- 7.1. Cray TotalView Debugger
- 7.2. Compiler Debugging Options
- 8. Interlanguage Communication
- 8.1. Interlanguage Communication with Cray Standard C and Cray C++
- 8.1.1. Calling Assembly Language Functions from a C or C++ Function
- 8.1.2. Calling Fortran Functions and Subroutines from a C or C++ Function
- 8.1.3. Calling a C/C++ Function from an Assembly Language or Fortran Program
- 8.1.4. Calls between C and C++ Functions
- 9. Implementation-defined Behavior
- 9.1. Implementation-defined Behavior
- 9.1.1. Messages
- 9.1.2. Environment
- 9.1.3. Preprocessing
- A. Libraries and Loaders
- A.1. UNICOS Standard C and C++ Libraries
- A.2. UNICOS Loaders
- A.2.1. Loader for UNICOS Systems (SEGLDR)
- A.2.2. Loader for UNICOS/mk Systems (cld)
- B. Cray C/C++ Dialects
- B.1. C++ Conformance
- B.1.1. Supported Features
- B.1.2. Unsupported Features
- B.2. C++ Anachronisms Accepted
- B.3. Extensions Accepted in Normal C++ Mode
- B.4. Extensions Accepted in C or C++ Mode
- B.5. C++ Extensions Accepted in cfront Compatibility
Mode
- C. Compiler Messages
- C.1. Expanding Messages with the explain Command
- C.2. Controlling the Use of Messages
- C.2.1. Command-line Options
- C.2.2. Environment Options for Messages
- C.2.3. ORIG_CMD_NAME Environment Variable
- C.3. Message Severity
- C.4. Common System Messages
- D. Intrinsic Functions
- Index
- List of Equations
- 9-1.
- 9-2.