HP aC++/HP C A.06.25 Release Notes
Table Of Contents
- HP aC++/HP ANSI C Release Notes
- Table of Contents
- 1 HP aC++/HP ANSI C Release Notes
- 2 What’s New in This Version
- New Features in Version A.06.25
- C99 default C compilation mode (Changed)
- Full -AA default C++ compilation mode (Changed)
- -Ax option enables support for several C++0x extensions (New)
- C99 features added to C++0x (New)
- extern template
- Decimal Floating Point supported in C++ mode (New)
- #pragma STDC FLOAT_CONST_DECIMAL64 (New)
- #pragma omp task (New)
- #pragma omp taskwait (New)
- Performance enhancements for +O1 (Changed)
- Non-template static data members initialized outside the class no longer treated as constants in strict mode (Changed)
- Enhancements to allow code to run well on current platforms and future multi-core processors (New)
- New diagnostic messages (New)
- Improved diagnostic messages (Changed)
- Enhanced +wendian warnings (New/Changed)
- New runtime abort messages (New)
- New Features in Version A.06.20
- Decimal floating-point arithmetic (HP-UX 11.31 only) (New)
- +annotate=structs (New)
- +check=lock (New)
- +check=thread (New)
- +O[no]autopar now supported in C++ Mode (New)
- +O[no]dynopt (HP-UX 11.31 only) (New)
- +inline_level num (Enhanced)
- -dumpversion (New)
- #include_next (New)
- #pragma diag_push (New)
- #pragma diag_pop (New)
- +Oinlinebudget is deprecated (Change)
- In next release, default C compilation mode will change from C89 to C99
- In next release, default C++ compilation mode will change to full -AA
- New Features in Version A.06.15
- printf, fprintf Optimization (New)
- +Wmacro Option (New)
- +Wcontext_limit Option (New)
- +wperfadvice Option (New)
- +Wv Option (New)
- +wlock Option (New)
- +O[no]autopar Option (New)
- +O[no]loop_block Option (New)
- +O[no]loop_unroll_jam (Default Change)
- +Olit=all (Default Change for HP C)
- +macro_debug= (New)
- +pathtrace (New)
- +check Suboptions (New)
- -Bhidden_def (New)
- -dM (New)
- #pragma OPT_LEVEL INITIAL (New)
- #pragma OPTIMIZE (Deprecated)
- #pragma [NO]INLINE (New for C++ Mode)
- _Asm_ld, _Asm_ldf, _Asm_st, _Asm_stf Intrinsics (New)
- Debugging Code Compiled with Opt Levels above +O1 Is Supported
- __attribute__ ((visibility("default"|"protected"|"hidden"))) Added (New)
- __attribute__ ((warn_unused_result)) Added (New)
- Change in treatment of cv-qualified assignment operators
- New Features in Version A.06.12
- New Features in Version A.06.10
- HP Code Advisor
- +cond_rodata Option (Obsoleted)
- +[no]dep_name Option (New)
- +expand_types_in_diag Option (New)
- +FPmode Option (Enhanced)
- +Ointeger_overflow (Default Changed)
- +Onolibcalls= Option (New)
- +wendian Option (New)
- +wlint Option (Enhanced)
- +wsecurity= Option (Enhanced)
- System-wide Option Configuration
- [NO]PTRS_TO_GLOBALS Pragma
- -AA -D_HP_NONSTD_FAST_IOSTREAM Performance Improvement Macro
- New Function Attributes
- Improved Diagnostics
- C++ Standard Library Change
- Earlier Versions
- New Features in Version A.06.25
- 3 Installation Information
- 4 Compatibility Information
- 5 Known Problems and Workarounds
- Obsolete LANG-STARTUP Files
- codecvt_byname Facet Needed for C Locale Conversions
- Using +check= Options and Running on Test and Deployment Systems
- GPREL22 Relocation Error
- Object Files Generated at +O4 or -ipo
- Incompatibilities Between the Standard C++ Library Ver. 1.2.1 and the Draft Standard
- Conflict Between macros.h and numeric_limits Class (min and max)
- Known Limitations
- 6 Related Documentation
directives. For these loops, the compiler automatically parallelizes each loop that is
both safe and likely to have improved performance when executed in parallel.
Programs compiled with the +Oautopar option require the libcps, libomp, and
libpthreads runtime support libraries to be present at both compilation and runtime.
When linking with the HP-UX B.11.61 linker (patch PHSS_36342 or PHSS_36349),
compiling with the +Oautoparoption causes them to be automatically included. Older
linkers require those libraries to be specified explicitly or by compiling with +Oopenmp.
At present, +Oautoparis only supported when compiling C or Fortran files, and not
C++ files. If you use +Oautopar with C or Fortran code in a mixed-language application
that also includes C++ files, you must use -mt when compiling and linking the C++
files, similar to the current requirements for +Oopenmp. Please refer to the
documentation of the aCC compiler's-mt option for additional information and
restrictions.
+O[no]loop_block Option (New)
+O[no]loop_block
Loop blocking is a combination of strip mining and interchange that improves data
cache locality. It is provided primarily to deal with nested loops that manipulate arrays
that are too large to fit into the data cache. Under certain circumstances, loop blocking
allows reuse of these arrays by transforming the loops that manipulate them so that
they manipulate strips of the arrays that fit into the cache.
At optimization levels 3 and 4, using +Oloop_block (the default) allows automatic
loop blocking. Specifying +Onoloop_block disables loop blocking.
+O[no]loop_unroll_jam (Default Change)
At optimization levels 3 and 4, the default for this option has changed from
+Onoloop_unroll_jam to +Oloop_unroll_jam, which allows automatic loop
unroll-and-jam.
+Olit=all (Default Change for HP C)
The default in C mode of the compiler is now +Olit=all, placing string constants in
read-only memory by default. This change over previous versions of the compiler
(which defaulted to +Olit=const) improves performance and is in keeping with
similar changes in the industry. Note that this may cause a runtime signal 11 if an
attempt is made to modify string literals.
To force the string to be read/write, you can change the source as follows:
static CHAR forall_00[] = "FORALL.CHARTYPE ";
static CHAR forall_01[] = "FORALL.COMPLEXTYPE ";
...
static CHAR *foralltemptypename[LASTINTRINTYPE-FIRSTINTRINTYPE+1] = {
forall_00, forall_01, ...
New Features in Version A.06.15 31