pro64-contrib
[Top] [All Lists]

Adding support for multimedia (SIMD) instructions

To: pro64-contrib@xxxxxxxxxxx, pro64-support@xxxxxxxxxxx
Subject: Adding support for multimedia (SIMD) instructions
From: Jacques-Olivier Haenni <Jacques-Olivier.Haenni@xxxxxxx>
Date: Tue, 27 Feb 2001 18:37:59 +0100
Organization: Swiss Federal Institute of Technology, Lausanne (EPFL)
Sender: owner-pro64-contrib@xxxxxxxxxxx
Hi !

I would like to add support for Itanium multimedia instructions into SGI Pro64
compiler.  My aim would be the compiler to be able to generate multimedia
instructions for inner loop without any help from the programmer.

In order to evaluate the feasibility and the complexity of this work, I would
like to ask you some questions.

First of all, is somebody already working on this ?

Here are some reflections you may comment about:

- The "conversion" of scalar to multimedia operations should be performed
before the conversion of WHIRL code to OPs (Convert_WHIRL_To_OPs).  During this
conversion, the sizes of the operands (8-, 16-, 32- or 64-bit) are lost;  this
information seems me primordial for finding candidate loops for
parallelization.

- The backend already knows multimedia instructions; one "just" has to generate
such instructions while WHIRL to OPs conversion.  This mainly involves inner
loop detection, dependence analysis, memory reference disambiguation.

Does anybody have any ideas about the complexity of this task ?

Do you know where I could find documentation about whirl to ops conversion and
loop manipulation in Pro64 (I already have the file 'whirl.pdf' from the Web) ?

Any hint, any clue or any idea about this topic are very welcome.

Thanks in advance for your reactions,

Jacques-Olivier

-- 
     Jacques-Olivier Haenni            http://lslwww.epfl.ch/~johaenni/
                                       Jacques-Olivier.Haenni@xxxxxxx
Logic Systems Laboratory
Swiss Federal Institute of Technology (EPFL) | Tel: (+41 21) 693 66 30
1015 Lausanne - Switzerland                  | Fax: (+41 21) 693 37 05

<Prev in Thread] Current Thread [Next in Thread>