This is the mail archive of the gcc@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]

gcc-specific array operator in C


Hello, 

I'm working in the f-cpu team. This project is to design a "free" cpu.
It will be mainly SIMD (like SSE, MMX, altivec,...) for performance and
hardware simplicity raison. 

As you know compiler aren't really nice with such feature. Vector
compiler aren't common at all.

I have seen that GCC introduice new data format and MACRO to access such
feature. That's nice for avoiding using ASM code but that's not portable
at all.

So i propose to add some thing to the wich list.

What about none standard "array operator" of simple type (int,
float,...) ? Such operator will only work on vector of known size at
compiled time. It's a little bit like matlab ".*" operator or new
operator in Perl 6.0.

This could be usefull to write portable code and doing a lot of
optimization. I think about
 loop unrolling,
 better instruction scheduling (with fast_math, the use of tree
dependancies instead of lineare one to better use pipeline and registers
set, for a MAC operator for example),
 use of SIMD instructions,
 better data prefetch handling,
 dedicated strip mining and cache management operation (3 very
unportable feature if directly coded in C or C++) ,
 enable the use of less control flow instruction.

The second step should be to add the matrix type to enable such
optimisation but too much algorythme exist for it. so forget it ;p

I hope you understand the advantage i see to such fonctionnality. I
would like to know you're opinion.

Regards,
Nicolas Boulay

_____________________________________________________________
Etudiant: Wanadoo t'offre le Pack eXtense Haut Débit soit 150,92 euros d'économies !
Et pour 1 euro de plus, reçois le CD-ROM du jeu Dark Age of Camelot
+ 1 mois de jeu en réseau offert ! 
Clique ici : http://www.ifrance.com/_reloc/mail.etudiant



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