The XGC Ada compiler provides a number of options that allow a trade off between
performance of the generated code;
speed of compilation;
minimization of dependencies and recompilation;
and the degree of run-time checking.
The defaults if no options are selected are aimed at improving the performance of the generated code:
optimization level 2
no inlining of subprogram calls
all run-time checks enabled except overflow and elaboration checks
These options are suitable for most program development purposes. This chapter describes how you can modify these choices.
By default, XGC Ada produces all run-time checks except arithmetic overflow checking for integer operations (including division by zero) and checks for access before elaboration on subprogram calls.
Two gnat switches, -gnatp and -gnato allow this default to be modified. See Section 1.2.3.
Our experience is that the default is suitable for most development purposes.
We treat integer overflow and elaboration checks specially because these are quite expensive and in our experience are not as important as other run-time checks in the development process.
Note that the setting of the switches controls the default setting of the checks. They may be modified using either pragma Suppress (to remove checks) or pragma Unsuppress (to add back suppressed checks) in the program source.