Accelerator Manual (G06.24+, H06.03+)

Setting Accelerator Options
Accelerator Manual527303-002
5-6
Safe Aliasing Rules
Super Option Settings
The Common and Safe options set OvTrap_On, and the Fast option sets OvTrap_Off.
Safe Aliasing Rules
On TNS systems, C and TAL programs can make piecemeal modifications to pointers
and array indexes by means of indirect addressing. For example, an indirect reference
to an extended pointer can modify as little as one byte of that pointer. Very few
programs make piecemeal modifications to pointers or array indexes by means of
indirect addressing. If you have carefully examined your C and TAL programs to make
sure that they do not modify pointers and array indexes in this way, it is safe to set
SafeAliasingRules_Off.
Accelerating with the SafeAliasingRules_On option has a marginal effect of program
performance.
Super Option Settings
The Common and Safe options set SafeAliasingRules_On, and the Fast option sets
SafeAliasingRules_Off.
Truncation in Address Calculations
In effect, address computation (except for 32-bit extended addresses) on TNS systems
is modulo-16 arithmetic, and on TNS/R systems it is modulo-32 arithmetic. In most
cases, this difference is not significant because address arithmetic rarely generates
numbers larger than 2**16 (two raised to the sixteenth power). In TAL, FORTRAN,
Pascal, and small-memory model C programs, however, addresses greater than 2**16
can be created when index values modify base addresses. The resulting overflow
results are different for the two types of systems. The addressing modes affected are
indexed G+, and indirect indexed G+, L+, L-, and S-.
Programs require the modulo effect if they use array pointers in languages that allow
arrays with large lower bounds and the compiler locates the array low in memory. This
is illustrated in the following TAL example:
INT A[1000:1009];
The Accelerator option default setting, TruncateIndexing_On, generates code that
truncates computed addresses to 16 bits. This option produces TNS/R address values
that are always identical to their TNS system counterparts.
You can safely set TruncateIndexing_Off for:
COBOL85 programs
Large-memory model C programs
Wide-data model C programs