pro64-contrib
[Top] [All Lists]

Re: Adding support for multimedia (SIMD) instructions

To: "Jacques-Olivier Haenni" <Jacques-Olivier.Haenni@xxxxxxx>, <pro64-contrib@xxxxxxxxxxx>, <pro64-support@xxxxxxxxxxx>
Subject: Re: Adding support for multimedia (SIMD) instructions
From: "Peng Tu" <tu@xxxxxxxxxxxxx>
Date: Tue, 27 Feb 2001 12:21:32 -0800
Sender: owner-pro64-contrib@xxxxxxxxxxx
The loop optimizations in Pro64 is under 'be/lno' directory.   The LNO is on
under
-O3.  The LNO performs loop detection, dependence analysis etc.  The IR for
LNO
is WHIRL.   You may want to do all your analysis in LNO and generate
multimedia
instructions by:

(1) Either expand the WHIRL to include the multimedia instructions, or
expand the
build-in data types to support multimedia data types so you can reuse the
same
WHIRL nodes/operators.
(2) Expand convert WHIRL to OPs to generate the multimedia instructions.

Depending on how good a job you want to do, it can take from 3 months to 3
years
I guess :-)

Peng.

-----Original Message-----
From: Jacques-Olivier Haenni <Jacques-Olivier.Haenni@xxxxxxx>
To: pro64-contrib@xxxxxxxxxxx <pro64-contrib@xxxxxxxxxxx>;
pro64-support@xxxxxxxxxxx <pro64-support@xxxxxxxxxxx>
Date: Tuesday, February 27, 2001 9:39 AM
Subject: Adding support for multimedia (SIMD) instructions


>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>