This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] clean ups in GNAT.Altivec.*


Tested on i686-linux, committed on trunk

All the vector/view conversions operate similarily: bare unchecked
conversion on big endian targets, and elements permutation on little
endian targets.

This was so far done in a not quite systematic way, with e.g. versions
for signed components implemented on top of versions for unsigned components,
with extra temporary copies that could be avoided.

We would like to provide a generic version of the conversion routines
and just have a set of "renaming as body" declarations to satisfy the
public interface. This unfortunately prevents inlining, which we must
preserve at least for the hard binding.

We instead provide a generic version of facilities needed by all the
conversion routines and use them repeatedly. The code is now very systematic,
thus easier to read, and the extra temporaries are gone.

Fix also an obvious mistake in the low level vector type definitions, which were
all mapped to the unsigned char vector view instead of each mapped to the
vector view corresponding to its element type.

One consequence was that all vector objects were displayed a byte sequences
by the debugger.

2007-04-06  Olivier Hainque  <hainque@adacore.com>

	* g-alleve.ads (Low Level Vector type definitions): Map each to the
	associated vector view instead of all to the unsigned char view.

	* g-altcon.adb (Generic_Conversions): New internal generic package,
	offering facilities for all the Vector/View conversion routines
	implemented by this unit.
	(To_View/To_Vector - all versions): Reimplemented in a systematic
	manner, using the internal Generic_Conversions facilities.

Attachment: difs
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]