aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst')
-rw-r--r--gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst30
1 files changed, 9 insertions, 21 deletions
diff --git a/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst b/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
index 6f33d0b4ce3..6161073367b 100644
--- a/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
+++ b/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
@@ -1447,26 +1447,20 @@ some guidelines on debugging optimized code.
Controlling Run-Time Checks
^^^^^^^^^^^^^^^^^^^^^^^^^^^
-By default, GNAT generates all run-time checks, except integer overflow
-checks, stack overflow checks, and checks for access before elaboration on
-subprogram calls. The latter are not required in default mode, because all
+By default, GNAT generates all run-time checks, except stack overflow
+checks, and checks for access before elaboration on subprogram
+calls. The latter are not required in default mode, because all
necessary checking is done at compile time.
.. index:: -gnatp (gcc)
.. index:: -gnato (gcc)
-Two gnat switches, *-gnatp* and *-gnato* allow this default to
-be modified. See :ref:`Run-Time_Checks`.
+The gnat switch, *-gnatp* allows this default to be modified. See
+:ref:`Run-Time_Checks`.
Our experience is that the default is suitable for most development
purposes.
-We treat integer overflow 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 division by zero
-is not considered an overflow check, and divide by zero checks are
-generated where required by default.
-
Elaboration checks are off by default, and also not needed by default, since
GNAT uses a static elaboration analysis approach that avoids the need for
run-time checking. This manual contains a full chapter discussing the issue
@@ -1942,11 +1936,9 @@ contain a single nested loop, if it can be vectorized when considered alone:
The vectorizable operations depend on the targeted SIMD instruction set, but
the adding and some of the multiplying operators are generally supported, as
-well as the logical operators for modular types. Note that, in the former
-case, enabling overflow checks, for example with *-gnato*, totally
-disables vectorization. The other checks are not supposed to have the same
-definitive effect, although compiling with *-gnatp* might well reveal
-cases where some checks do thwart vectorization.
+well as the logical operators for modular types. Note that compiling
+with *-gnatp* might well reveal cases where some checks do thwart
+vectorization.
Type conversions may also prevent vectorization if they involve semantics that
are not directly supported by the code generator or the SIMD instruction set.
@@ -3197,10 +3189,6 @@ If no digits follow the *-gnato*, then it is equivalent to
causing all intermediate operations to be computed using the base
type (`STRICT` mode).
-In addition to setting the mode used for computation of intermediate
-results, the `-gnato` switch also enables overflow checking (which
-is suppressed by default). It thus combines the effect of using
-a pragma `Overflow_Mode` and pragma `Unsuppress`.
.. _Default_Settings:
@@ -3884,7 +3872,7 @@ execution of this erroneous program:
it to obtain accurate dynamic memory usage history at a minimal cost to the
execution speed. Note however, that `gnatmem` is not supported on all
platforms (currently, it is supported on AIX, HP-UX, GNU/Linux, Solaris and
- Windows NT/2000/XP (x86).
+ Windows.
The `gnatmem` command has the form