HP aC++/HP ANSI C A.06.28 Release (769149-001, March 2014)

+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, ...
Using an array will force the string to be read/write.
Other simpler cases can be handled as:
changing to array will work in most cases:
char *temp = "abcd";
char temp[] = "abcd";
If temp is used as a pointer:
static char temp_arr[] = "abcd";
char *temp = temp_arr;
+macro_debug= (New)
The +macro_debug option controls the emission of macro debug information into the object file:
+macro_debug={ref|all|none}
Set +macro_debug to one of the following required values:
ref Emits debug information only for referenced macros. This is the default for -g, -g1,or
-g0.
all Emits debug information for all macros. This option can cause a significant increase in
object file size.
none Does not emit any macro debug information.
One of the -g options (-g, -g0, or -g1) must be used to enable the +macro_debugoption.
+nomacro_debug suppresses emission of macro debug information into the object file.
+pathtrace (New)
+pathtrace[=kind]
42 Product changes in earlier versions