+2009-07-28 Olivier Hainque <hainque@adacore.com>
+
+ * g-ssinty.ads: Remove, pointless and just confusing at this stage.
+ * gnat_rm.texi: Remove documentation.
+ * g-sse.ads: Minor reorg along the way.
+ * gcc-interface/Makefile.in: Remove processing for g-ssinty.
+ * g-ssvety.ads: Minor comment updates.
+
+2009-07-28 Sergey Rybin <rybin@adacore.com>
+
+ * gnat_ugn.texi: gnatcheck 'Format of the Report File' section - update
+ for the new format of the report file.
+
2009-07-28 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi: gnatcheck Deeply_Nested_Inlining rule: Update doc.
-- end SSE_Base;
package GNAT.SSE is
- type Float32 is new Float;
- type Float64 is new Long_Float;
- type Integer64 is new Long_Long_Integer;
+
+ -----------------------------------
+ -- Common vector characteristics --
+ -----------------------------------
VECTOR_BYTES : constant := 16;
-- Common size of all the SSE vector types, in bytes.
-- We apply that consistently to all the Ada vector types, as GCC does
-- for the corresponding C types.
+ ----------------------------
+ -- Vector component types --
+ ----------------------------
+
+ type Float32 is new Float;
+ type Float64 is new Long_Float;
+ type Integer64 is new Long_Long_Integer;
+
end GNAT.SSE;
+++ /dev/null
-------------------------------------------------------------------------------
--- --
--- GNAT COMPILER COMPONENTS --
--- --
--- G N A T . S S E . I N T E R N A L _ T Y P E S --
--- --
--- S p e c --
--- --
--- Copyright (C) 2009, Free Software Foundation, Inc. --
--- --
--- GNAT is free software; you can redistribute it and/or modify it under --
--- terms of the GNU General Public License as published by the Free Soft- --
--- ware Foundation; either version 3, or (at your option) any later ver- --
--- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
--- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
--- or FITNESS FOR A PARTICULAR PURPOSE. --
--- --
--- As a special exception under Section 7 of GPL version 3, you are granted --
--- additional permissions described in the GCC Runtime Library Exception, --
--- version 3.1, as published by the Free Software Foundation. --
--- --
--- You should have received a copy of the GNU General Public License and --
--- a copy of the GCC Runtime Library Exception along with this program; --
--- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
--- <http://www.gnu.org/licenses/>. --
--- --
--- GNAT was originally developed by the GNAT team at New York University. --
--- Extensive contributions were provided by Ada Core Technologies Inc. --
--- --
-------------------------------------------------------------------------------
-
--- This unit exposes low level types to interface with the GCC vector
--- builtins directly. These are useful for the development of higher level
--- bindings to the reference Intel intrinsic operations.
-
--- See GNAT.SSE for the list of targets where this facility is supported.
-
-package GNAT.SSE.Internal_Types is
-
- type v4sf is private;
- type v2df is private;
- type v2di is private;
-
-private
-
- -- GCC'wise, vector operations operate on objects of vector modes,
- -- conveyed through vector types obtained in C by setting an attribute on
- -- what looks like a component typedef. For example, in xmmintrin.h:
- --
- -- typedef float __v4sf __attribute__ ((__vector_size__ (16)));
-
- -- Applying a 'vector_size' machine attribute in Ada, as in
- --
- -- type Vf is new Float;
- -- pragma Machine_Attribute (Vf, "vector_size", 16);
- --
- -- makes Vf a 16bytes long V4SFmode GCC type but the effect on the type
- -- layout is not conveyed to the front-end. The latter still sees "Vf"
- -- as a 4bytes long single float, with numerous potential pitfalls.
-
- -- We devised a 'vector_type' alternate machine attribute, which applies
- -- to array types of the proper size and alignment from the front-end
- -- perspective:
-
- type v4sf is array (1 .. 4) of GNAT.SSE.Float32;
- for v4sf'Alignment use GNAT.SSE.VECTOR_ALIGN;
- pragma Machine_Attribute (v4sf, "vector_type");
-
- type v2di is array (1 .. 2) of GNAT.SSE.Integer64;
- for v2di'Alignment use GNAT.SSE.VECTOR_ALIGN;
- pragma Machine_Attribute (v2di, "vector_type");
-
- type v2df is array (1 .. 2) of GNAT.SSE.Float64;
- for v2df'Alignment use GNAT.SSE.VECTOR_ALIGN;
- pragma Machine_Attribute (v2df, "vector_type");
-
-end GNAT.SSE.Internal_Types;
-- access the byte elements and structures.
--
-- * Use new data types only with the respective intrinsics described
- -- in this documentation. >>
+ -- in this documentation.
type m128 is private; -- SSE >= 1
type m128d is private; -- SSE >= 2
-- typedef float __v4sf __attribute__ ((__vector_size__ (16)));
------------
- -- M128 --
+ -- m128 --
------------
-- The __m128 data type can hold four 32-bit floating-point values
endif
THREADSLIB = -lpthread
- EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o g-ssinty.o
+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
endif
endif
EXTRA_GNATRTL_NONTASKING_OBJS = \
- s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o g-ssinty.o
+ s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
MISCLIB = -lws2_32
mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
indepsw.adb<indepsw-gnu.adb
- EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o g-ssinty.o
+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
EH_MECHANISM=-gcc
THREADSLIB=-lpthread
* GNAT.Spitbol.Table_Integer (g-sptain.ads)::
* GNAT.Spitbol.Table_VString (g-sptavs.ads)::
* GNAT.SSE (g-sse.ads)::
-* GNAT.SSE.Internal_Types (g-ssinty.ads)::
* GNAT.SSE.Vector_Types (g-ssvety.ads)::
* GNAT.Strings (g-string.ads)::
* GNAT.String_Split (g-strspl.ads)::
* GNAT.Spitbol.Table_Integer (g-sptain.ads)::
* GNAT.Spitbol.Table_VString (g-sptavs.ads)::
* GNAT.SSE (g-sse.ads)::
-* GNAT.SSE.Internal_Types (g-ssinty.ads)::
* GNAT.SSE.Vector_Types (g-ssvety.ads)::
* GNAT.Strings (g-string.ads)::
* GNAT.String_Split (g-strspl.ads)::
targets. It exposes vector component types together with a general
introduction to the binding contents and use.
-@node GNAT.SSE.Internal_Types (g-ssinty.ads)
-@section @code{GNAT.SSE.Internal_Types} (@file{g-ssinty.ads})
-@cindex @code{GNAT.SSE.Internal_Types} (@file{g-ssinty.ads})
-
-@noindent
-Low level GCC vector types for direct use of the vector related
-builtins, required for the development of higher level bindings to SSE
-intrinsic operations.
-
@node GNAT.SSE.Vector_Types (g-ssvety.ads)
@section @code{GNAT.SSE.Vector_Types} (@file{g-ssvety.ads})
@cindex @code{GNAT.SSE.Vector_Types} (@file{g-ssvety.ads})
directory, @option{^-o^/OUTPUT^} option can be used to change the name and/or
location of the report file. This report contains:
@itemize @bullet
-@item a list of the Ada source files being checked,
-@item a list of enabled and disabled rules,
-@item a list of the diagnostic messages, ordered in three different ways
-and collected in three separate
-sections. Section 1 contains the raw list of diagnostic messages. It
-corresponds to the output going to @file{stdout}. Section 2 contains
-messages ordered by rules.
-Section 3 contains messages ordered by source files.
+@item date and time of @command{gnatcheck} run, the version of
+the tool that has generated this report and the full paarmeters
+of the @command{gnatcheck} invocation;
+@item the list of enabled rules;
+@item the total number of detected violations;
+@item list of source files for that rule violations have been detected;
+@item list of source files with no violations detected;
@end itemize
@node General gnatcheck Switches