From owner-pro64-contrib@oss.sgi.com Wed Feb 21 10:29:07 2001 Received: by oss.sgi.com id ; Wed, 21 Feb 2001 10:28:47 -0800 Received: from dimail.epfl.ch ([128.178.79.31]:59275 "EHLO dimail.epfl.ch") by oss.sgi.com with ESMTP id ; Wed, 21 Feb 2001 10:28:18 -0800 Received: from epfl.ch (lgrasso@lapsun2.epfl.ch [128.178.74.4]) by dimail.epfl.ch (8.8.X/EPFL-8.1e) with ESMTP id TAA09638 for ; Wed, 21 Feb 2001 19:28:14 +0100 (MET) Message-ID: <3A9408BE.56AB6E0A@epfl.ch> Date: Wed, 21 Feb 2001 19:28:14 +0100 From: Luigi Grasso Organization: EPFL Departement d'Informatique LAP X-Mailer: Mozilla 4.76 [en] (X11; U; SunOS 5.7 sun4u) X-Accept-Language: en MIME-Version: 1.0 To: pro64-contrib@oss.sgi.com Subject: re-targeting Pro64 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing Hi, I'm a PhD student involved in research over VLIW arch., my team is currently looking for a front/back-end compiler enough customizable to be matched with the arch. of the processor we are going to develop (Zelich arch.). Does somebody have a felling on: (1) "how easy" would be the re-targeting process? (2) how good documented is the internal structure of the compiler? (3) how it is right now, is it pretty stable or still buggy? Thanks, luigi -- ========================================================================== ____/ __ / ____/ / L u i g i G r a s s o / / / / / Research Assistant - PhD student ____/ ____/ ____/ / mailto:luigi.grasso@epfl.ch / / / / http://diwww.epfl.ch/w3lap/ ____/ _/ _/ ____/ Office: +41 -21 693 6703 Fax: +41 -21 693 5263 Laboratoire d'Architecture des Processeurs IN F Ecublens, 1015 Lausanne, Switzerland ========================================================================== From owner-pro64-contrib@oss.sgi.com Wed Feb 21 12:04:56 2001 Received: by oss.sgi.com id ; Wed, 21 Feb 2001 12:04:36 -0800 Received: from rumor.cps.intel.com ([192.102.198.242]:2243 "EHLO rumor.cps.intel.com") by oss.sgi.com with ESMTP id ; Wed, 21 Feb 2001 12:04:30 -0800 Received: from SMTP (fmsmsxvs05-1.fm.intel.com [132.233.42.205]) by rumor.cps.intel.com (8.9.1a+p1/8.9.1/d: relay.m4,v 1.35 2001/02/12 09:03:45 smothers Exp $) with SMTP id UAA21374; Wed, 21 Feb 2001 20:04:03 GMT Received: from fmsmsx28.fm.intel.com ([132.233.48.28]) by 132.233.48.205 (Norton AntiVirus for Internet Email Gateways 1.0) ; Wed, 21 Feb 2001 20:04:06 0000 (GMT) Received: by fmsmsx28.fm.intel.com with Internet Mail Service (5.5.2650.21) id ; Wed, 21 Feb 2001 12:04:05 -0800 Message-ID: <9287DC1579B0D411AA2F009027F44C3F042DF887@FMSMSX41> From: "Chan, Sun C" To: "'Luigi Grasso'" , pro64-contrib@oss.sgi.com Subject: RE: re-targeting Pro64 Date: Wed, 21 Feb 2001 12:04:04 -0800 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing > -----Original Message----- > From: Luigi Grasso [mailto:Luigi.Grasso@epfl.ch] > Sent: Wednesday, February 21, 2001 10:28 AM > To: pro64-contrib@oss.sgi.com > Subject: re-targeting Pro64 > > > Hi, > > I'm a PhD student involved in research over VLIW arch., my team is > currently looking for a front/back-end compiler enough customizable to > be matched with the arch. of the processor we are going to develop > (Zelich arch.). > > Does somebody have a felling on: > > (1) "how easy" would be the re-targeting process? Prof Gao has done retargetting back to Mips. He is with U of Delaware. > (2) how good documented is the internal structure of the compiler? Not very. But that's a very "big" question. What part of the compiler are you interested in? Other parts that you don't care, it doesn't matter, right? Just don't think that you can try to comprehend the "whole" compiler in a matter of one year. So, narrow down your scope and ask the question again. If you need to add additional IR (i.e. WHIRL changes), you'll gonna need a lot of help. > (3) how it is right now, is it pretty stable or still buggy? This also depends on your need. Why not just use it and make up your own mind about it. From owner-pro64-contrib@oss.sgi.com Tue Feb 27 09:38:41 2001 Received: by oss.sgi.com id ; Tue, 27 Feb 2001 09:38:31 -0800 Received: from lslsun.epfl.ch ([128.178.150.20]:4300 "EHLO lslsun.epfl.ch") by oss.sgi.com with ESMTP id ; Tue, 27 Feb 2001 09:38:14 -0800 Received: from epfl.ch (johaenni@lslsun8 [128.178.150.31]) by lslsun.epfl.ch (8.8.X/EPFL-8.1a) with ESMTP id SAA10273; Tue, 27 Feb 2001 18:38:01 +0100 (MET) Message-ID: <3A9BE5F7.C982AF58@epfl.ch> Date: Tue, 27 Feb 2001 18:37:59 +0100 From: Jacques-Olivier Haenni Organization: Swiss Federal Institute of Technology, Lausanne (EPFL) X-Mailer: Mozilla 4.75 [en] (X11; U; SunOS 5.6 sun4u) X-Accept-Language: en, fr-CH, fr MIME-Version: 1.0 To: pro64-contrib@oss.sgi.com, pro64-support@oss.sgi.com Subject: Adding support for multimedia (SIMD) instructions Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing 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@epfl.ch Logic Systems Laboratory Swiss Federal Institute of Technology (EPFL) | Tel: (+41 21) 693 66 30 1015 Lausanne - Switzerland | Fax: (+41 21) 693 37 05 From owner-pro64-contrib@oss.sgi.com Tue Feb 27 12:25:43 2001 Received: by oss.sgi.com id ; Tue, 27 Feb 2001 12:25:34 -0800 Received: from [38.170.141.29] ([38.170.141.29]:31477 "EHLO mail-in.hq.tensilica.com") by oss.sgi.com with ESMTP id ; Tue, 27 Feb 2001 12:25:29 -0800 Received: from sonata.hq.tensilica.com (IDENT:root@sonata.hq.tensilica.com [192.168.10.17]) by mail-in.hq.tensilica.com (8.9.3/8.9.3) with ESMTP id MAA06491; Tue, 27 Feb 2001 12:25:28 -0800 Received: from gobi-pc ([192.168.11.121]) by sonata.hq.tensilica.com (8.8.7/8.8.7) with SMTP id MAA10075; Tue, 27 Feb 2001 12:25:28 -0800 Message-ID: <008301c0a0fa$dfed4170$790ba8c0@gobi-pc.hq.tensilica.com> From: "Peng Tu" To: "Jacques-Olivier Haenni" , , Subject: Re: Adding support for multimedia (SIMD) instructions Date: Tue, 27 Feb 2001 12:21:32 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing 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 To: pro64-contrib@oss.sgi.com ; pro64-support@oss.sgi.com 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@epfl.ch >Logic Systems Laboratory >Swiss Federal Institute of Technology (EPFL) | Tel: (+41 21) 693 66 30 >1015 Lausanne - Switzerland | Fax: (+41 21) 693 37 05 From owner-pro64-contrib@oss.sgi.com Tue Feb 27 13:02:14 2001 Received: by oss.sgi.com id ; Tue, 27 Feb 2001 13:01:55 -0800 Received: from deliverator.sgi.com ([204.94.214.10]:66 "EHLO deliverator.sgi.com") by oss.sgi.com with ESMTP id ; Tue, 27 Feb 2001 13:01:52 -0800 Received: from gaea.engr.sgi.com (gaea.engr.sgi.com [130.62.180.97]) by deliverator.sgi.com (980309.SGI.8.8.8-aspam-6.2/980310.SGI-aspam) via ESMTP id NAA00416; Tue, 27 Feb 2001 13:00:46 -0800 (PST) mail_from (murthy@sgi.com) Received: from sgi.com (localhost [127.0.0.1]) by gaea.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF) via ESMTP id MAA45390; Tue, 27 Feb 2001 12:53:45 -0800 (PST) Message-ID: <3A9C13D9.E4C13E77@sgi.com> Date: Tue, 27 Feb 2001 12:53:45 -0800 From: Chandrasekhar Murthy X-Mailer: Mozilla 4.51C-SGI [en] (X11; I; IRIX 6.5 IP32) X-Accept-Language: en MIME-Version: 1.0 To: Peng Tu CC: Jacques-Olivier Haenni , pro64-contrib@oss.sgi.com, pro64-support@oss.sgi.com Subject: Re: Adding support for multimedia (SIMD) instructions References: <008301c0a0fa$dfed4170$790ba8c0@gobi-pc.hq.tensilica.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing 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 > To: pro64-contrib@oss.sgi.com ; > pro64-support@oss.sgi.com > 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@epfl.ch > >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 From owner-pro64-contrib@oss.sgi.com Wed Feb 28 15:35:33 2001 Received: by oss.sgi.com id ; Wed, 28 Feb 2001 15:35:13 -0800 Received: from deliverator.sgi.com ([204.94.214.10]:20542 "EHLO deliverator.sgi.com") by oss.sgi.com with ESMTP id ; Wed, 28 Feb 2001 15:35:06 -0800 Received: from rohi.engr.sgi.com (rohi.engr.sgi.com [130.62.180.74]) by deliverator.sgi.com (980309.SGI.8.8.8-aspam-6.2/980310.SGI-aspam) via ESMTP id PAA01637 for ; Wed, 28 Feb 2001 15:34:00 -0800 (PST) mail_from (mpm@rohi.engr.sgi.com) Received: (from mpm@localhost) by rohi.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF) id PAA77456 for pro64-contrib@oss.sgi.com; Wed, 28 Feb 2001 15:33:37 -0800 (PST) Date: Wed, 28 Feb 2001 15:33:37 -0800 (PST) From: mpm@rohi.engr.sgi.com (Michael Murphy) Message-Id: <200102282333.PAA77456@rohi.engr.sgi.com> To: pro64-contrib@oss.sgi.com Subject: Re: Adding support for multimedia (SIMD) instructions Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing To answer your initial question, no one (as far as I know) is already working on this. If you get something working, we would certainly be interested in seeing your code changes. As other replies have said, there are several different approaches you could take to doing this. If you want to avoid WHIRL changes, which would simplify things, you could use builtins, or even try to pattern match within CG (not ideal but could probably work for some cases). Making the simd stuff visible at whirl level would be more work, but would also enable more optimization. You should also think about whether you want to have user-specified directives/attributes that would tell where to use the simd stuff. That would require front-end changes, but you could then avoid the need to determine when to use the simd code. -- Mike Murphy -- mpm@sgi.com -- quote of the day: -- "How can we remember our ignorance, which growth requires, -- when we are using our knowledge all the time?" (Thoreau)