Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP C/HP-UX Release Notes for HP-UX 11i version 1.5 > Chapter 1 New Features

New features in HP C for IPF

» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

This section describes the new features in the the ANSI C compiler for the Itanium Processer Family (IPF) of products.

  • Symbol binding options (-B options)

  • Profile-based Optimization (PBO) options

  • Performance optinos and pragmas

  • Depracated options

  • PA options and pragmas no longer supported

Symbol Binding (-B) Options and Pragmas

New options have been added in the HP C IPF compiler to specify whether references to global symbols may be resolved to symbols defined in the current translation unit, or whether they must be assumed to be potentially resolved to symbols that are defined in another load module. All -B options are applied in a left to right order. This is so that options at the end of the string may supercede those that appear earlier in the string.

  • -Bdefault=symbol[,symbol...]* option and #pragma default_binding=symbol[,symbol...]* assign the named symbols to the default export class. These symbols can be imported or exported outside the current load module.

  • -Bdefault=filename indicates that the file contains a white-space separated list of symbols which are assigned the default export class. The HP C compiler inlines the import stub for calls to these symbols. All references to these symbols are made through the linkage table.

  • -Bextern=symbol[,symbol*...]* option and #pragma -Bextern=symbol[,symbol...]* assign the named symbols (or all undefined symbols if no symbol list is provided) to the default export class. The HP C compiler inlines the import stub for calls to these symbols. All references to these symbols are made through the linkage table.

  • -Bextern=filename indicates that the file contains a white-space separated list of symbols which are assigned the default export class. The HP C compiler inlines the import stub for calls to these symbols. All references to these symbols are made through the linkage table.

  • -Bhidden=symbol[,symbol...]* option and #pragma -Bhidden=symbol[,symbol...]* assign the named symbols to the hidden export class. These symbols are not pre-empted by syumbols from other load modules, so the compiler may bypass the linkage table for both code and data references, and bind them to locally defined code and data references.

  • -Bhidden=filename indicates that the file contains a white-space separated list of symbols which are assigned the hidden export class. The HP C compiler inlines the import stub for calls to these symbols. All references to these symbols are made through the linkage table.

  • -Bprotected=symbol[,symbol...]* option and #pragma -Bprotected=symbol[,symbol...]* assign the named symbols to the protected export class. These symbols are not pre-empted by symbols from other load modules, so the compiler may bypass the linkage table for both code and data references, and bind them to locally defined code and data references. In the absence of a symbol list, this option implies -W1 -aarchive_shared.

  • -Bprotected=filename indicates that the file contains a white-space separated list of symbols which are assigned the protected export class. The HP C compiler inlines the import stub for calls to these symbols. All references to these symbols are made through the linkage table.

  • -Bprotected_data marks only data symbols as having the protected export class.

  • -Bprotected_def does the same thing as -Bprotected but only locally-defined symbols are assigned the protected export class.

  • -Bsymbolic assigns all symbols to the protected export class. This option is equivalent to -Bprotected with no symbol list.

Profile-Based Optimization (PBO) Options and Pragmas

The following are new profile-based optimization (PBO) options in the B11.20.00 release of the HP C compiler.

  • +Oprofile=use[:filename] tells the compiler to look for a filename in the profile database file. If a filename is not specified, this works the same as the +P option.

  • +Oprofile=collect works the same as the and +I option.

  • +Ofrequently_called=name[,name] specifies that functions specified from the command line are to be frequently called within an application.

  • +Ofrequently_called:filename specifies that functions specified from within the specified file are to be frequently called within an application.

  • +Orarely_called=name[,name]* specifies that functions specified from the command line are to be rarely called within an application.

  • +Orarely_called:filename specifies that functions specified from within the specified file are to be rarely called within an application.

  • #pragma frequently_called symbol[,symbol] specifies that functions specified from the command line are to be frequently called within an application. This pragma must occur prior to any definition of or reference to the named functions.

  • #pragma rarely_called symbol[,symbol] specifies that functions specified from the command line are to be rarely called within an application. This pragma must occur prior to any definition of or reference to the named functions.

  • #pragma Estimated_Frequency f indicates the estimated relative execution frequency of the current block as compared with the surrounding (immediate) block.

Performance Options and Pragmas

The following are new performance options in this version of the HP C compiler.

  • +O[no]cross_region_addressing enables (disables) the use of cross-region addressing in +DD32 applications.

  • +Ofaster is an alias for the combination of the +Ofast +O4 optimization options.

  • +O[no]parminit tells the compiler optimizer to automatically initialize unspecified function parameters at call sites to zero.

  • +O[no]recovery generates (does not generate) recovery code for control speculation.

  • +O[no]store_ordering is a block-scoped pragma that preserves (does not preserve) the original program order for stores to memory that is potentially visable to multiple threads.

  • #pragma If_Convert tells the compiler that the current scope should be "if-converted".

  • #pragma no_inline is a synonym of the #pragma NOINLINE.

  • #pragma Unroll_Factor n is a block-scoped pragma that tells the compiler the unroll factor to be applied to the loop containing the current block.

Deprecated Options

The following options will be available in this release of HP C for compatibility purposes only. When used, HP C will emit a warning indicating that these options may not be supported in future releases.

  • +ES[no]lit

  • +ESconstlit

  • +O[no]aggressive

  • +O[no]all

  • +O[no]conservative

  • +O[no]extern

  • +O[no]libcalls

  • +O[no]moveflops

Unsupported PA Options and Pragmas

The following options, when used, will generate a warning indicating that they are not supported under the B11.20.00 version of the HP C compiler for IPF.

  • -noshared

  • +ESfic

  • +O[no]loop_unroll[=unroll_factor]

  • +O[no]nodepar

  • +p

  • +pa, +pal

  • #pragma HP_OPT_DATA var

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2001 - Hewlett-Packard Development Company, L.P.