pro64-contrib
[Top] [All Lists]

Re: Adding support for multimedia (SIMD) instructions

To: Peng Tu <tu@xxxxxxxxxxxxx>
Subject: Re: Adding support for multimedia (SIMD) instructions
From: Chandrasekhar Murthy <murthy@xxxxxxx>
Date: Tue, 27 Feb 2001 12:53:45 -0800
Cc: Jacques-Olivier Haenni <Jacques-Olivier.Haenni@xxxxxxx>, pro64-contrib@xxxxxxxxxxx, pro64-support@xxxxxxxxxxx
References: <008301c0a0fa$dfed4170$790ba8c0@xxxxxxxxxxxxxxxxxxxxxxxx>
Sender: owner-pro64-contrib@xxxxxxxxxxx
Peng Tu wrote:
> 
> 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

To minimize the impact on the rest of the compiler, you might consider
treating the multimedia instructions as intrinsic ops rather than
WHIRL ops.  

Murthy

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