From owner-pro64-contrib@oss.sgi.com Mon May 15 11:57:01 2000 Received: by oss.sgi.com id ; Mon, 15 May 2000 18:56:42 +0000 Received: from atrey.karlin.mff.cuni.cz ([195.113.31.123]:17671 "EHLO atrey.karlin.mff.cuni.cz") by oss.sgi.com with ESMTP id ; Mon, 15 May 2000 18:56:35 +0000 Received: (from hubicka@localhost) by atrey.karlin.mff.cuni.cz (8.8.8/8.8.8) id UAA13031 for pro64-contrib@oss.sgi.com; Mon, 15 May 2000 20:56:34 +0200 Date: Mon, 15 May 2000 20:56:34 +0200 From: Jan Hubicka To: pro64-contrib@oss.sgi.com Subject: Retargeting etc... Message-ID: <20000515205634.J6530@atrey.karlin.mff.cuni.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0i Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing Hi First I must thank to SGI for releasing their compiler. This is definitly great contribution to the free software development. Being an gcc developer I am really excited to see full sources of some other compilers and I hope that both projects will benefit from each other. Now I am looking at the sources and trying to orientate in them. For start I would like to take a look at posibilities of retargeting whole thing to IA-32, since I am having no IA-64 handy :(. Are there any docs except for the intermediate language description that may help me in teaching about the internals. Can someone outline basic places where the machine dependent bits are. So far I am seeing many places with seemingly IA-64 dependent code. Is there some gcc md file equivalent? I see this mentioned in the docs, I see /common/targ_info/isa/ia64, but I still don't understand :)) And some unrelated questions. Is there some CVS, some policy to accept patches, and some archives of mailing lists? Thanks Honza From owner-pro64-contrib@oss.sgi.com Tue May 16 04:43:51 2000 Received: by oss.sgi.com id ; Tue, 16 May 2000 11:43:41 +0000 Received: from gomez.ne.mediaone.net ([24.147.216.127]:38133 "EHLO alice.ma.tensilica.com") by oss.sgi.com with ESMTP id ; Tue, 16 May 2000 11:43:25 +0000 Received: (from rutt@localhost) by alice.ma.tensilica.com (8.9.3/8.8.7) id HAA16141; Tue, 16 May 2000 07:43:19 -0400 X-Authentication-Warning: alice.chezrutt.com: rutt set sender to rutt@alice.ma.tensilica.com using -f From: John Ruttenberg MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <14625.13399.356526.158098@alice.ma.tensilica.com> Date: Tue, 16 May 2000 07:43:19 -0400 (EDT) To: pro64-contrib@oss.sgi.com Subject: Fix(?) for gratuitous remakes of intr/{intr_wrapper,intr_table,wtable}.h X-Mailer: VM 6.75 under Emacs 20.5.1 Reply-to: rutt@tensilica.com Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing Every time gmake is executed in targia32_ia64_nodebug, these three files are copied from their source directory into the build directory, sometimes causing other things to rebuild as well. Is there some good reason for this? A better solution is to copy these only if the sources are newer than the files in the build area. (But why are the copies even in the build area?) Anyway, here is a patch that makes for faster (less confusing!) makes: [rutt@alice sgi]$ diff -p osprey1.0/common/intr/Makefile.gbase.~1~ osprey1.0/common/intr/Makefile.gbase *** osprey1.0/common/intr/Makefile.gbase.~1~ Fri May 12 18:52:05 2000 --- osprey1.0/common/intr/Makefile.gbase Tue May 16 07:34:45 2000 *************** RAG_DIRS = \ *** 134,140 **** $(INCLUDE_DIR) ! VPATH = $(RAG_DIRS) LCDEFS = $(HOSTDEFS) $(TARGDEFS) LCINCS = $(addprefix -I, $(RAG_DIRS)) --- 134,140 ---- $(INCLUDE_DIR) ! #VPATH = $(RAG_DIRS) LCDEFS = $(HOSTDEFS) $(TARGDEFS) LCINCS = $(addprefix -I, $(RAG_DIRS)) *************** LDIRT = intr_table.tmp* wint_tool *** 155,164 **** #------------------------------------------------------------ TARGETS = wtable.h intr_table.h intr_wrapper.h ! default: cp $(INTR_DIR)/intr_wrapper.h . cp $(INTR_DIR)/intr_table.h . cp $(INTR_DIR)/wtable.h . #---------------------------------------------------------------------- # The commands in this section are done BEFORE any other target is --- 155,171 ---- #------------------------------------------------------------ TARGETS = wtable.h intr_table.h intr_wrapper.h ! default: $(TARGETS) ! ! intr_wrapper.h: $(INTR_DIR)/intr_wrapper.h cp $(INTR_DIR)/intr_wrapper.h . + + intr_table.h: $(INTR_DIR)/intr_table.h cp $(INTR_DIR)/intr_table.h . + + wtable.h: $(INTR_DIR)/wtable.h cp $(INTR_DIR)/wtable.h . + #---------------------------------------------------------------------- # The commands in this section are done BEFORE any other target is From: John Ruttenberg MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <14625.13399.356526.158098@alice.ma.tensilica.com> Date: Tue, 16 May 2000 07:43:19 -0400 (EDT) To: pro64-contrib@oss.sgi.com Subject: Fix(?) for gratuitous remakes of intr/{intr_wrapper,intr_table,wtable}.h X-Mailer: VM 6.75 under Emacs 20.5.1 Reply-to: rutt@tensilica.com X-Orcpt: rfc822;pro64-contrib@oss.sgi.com Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Every time gmake is executed in targia32_ia64_nodebug, these three files are copied from their source directory into the build directory, sometimes causing other things to rebuild as well. Is there some good reason for this? A better solution is to copy these only if the sources are newer than the files in the build area. (But why are the copies even in the build area?) Anyway, here is a patch that makes for faster (less confusing!) makes: [rutt@alice sgi]$ diff -p osprey1.0/common/intr/Makefile.gbase.~1~ osprey1.0/common/intr/Makefile.gbase *** osprey1.0/common/intr/Makefile.gbase.~1~ Fri May 12 18:52:05 2000 --- osprey1.0/common/intr/Makefile.gbase Tue May 16 07:34:45 2000 *************** RAG_DIRS = \ *** 134,140 **** $(INCLUDE_DIR) ! VPATH = $(RAG_DIRS) LCDEFS = $(HOSTDEFS) $(TARGDEFS) LCINCS = $(addprefix -I, $(RAG_DIRS)) --- 134,140 ---- $(INCLUDE_DIR) ! #VPATH = $(RAG_DIRS) LCDEFS = $(HOSTDEFS) $(TARGDEFS) LCINCS = $(addprefix -I, $(RAG_DIRS)) *************** LDIRT = intr_table.tmp* wint_tool *** 155,164 **** #------------------------------------------------------------ TARGETS = wtable.h intr_table.h intr_wrapper.h ! default: cp $(INTR_DIR)/intr_wrapper.h . cp $(INTR_DIR)/intr_table.h . cp $(INTR_DIR)/wtable.h . #---------------------------------------------------------------------- # The commands in this section are done BEFORE any other target is --- 155,171 ---- #------------------------------------------------------------ TARGETS = wtable.h intr_table.h intr_wrapper.h ! default: $(TARGETS) ! ! intr_wrapper.h: $(INTR_DIR)/intr_wrapper.h cp $(INTR_DIR)/intr_wrapper.h . + + intr_table.h: $(INTR_DIR)/intr_table.h cp $(INTR_DIR)/intr_table.h . + + wtable.h: $(INTR_DIR)/wtable.h cp $(INTR_DIR)/wtable.h . + #---------------------------------------------------------------------- # The commands in this section are done BEFORE any other target is From owner-pro64-contrib@oss.sgi.com Tue May 16 12:42:11 2000 Received: by oss.sgi.com id ; Tue, 16 May 2000 19:42:01 +0000 Received: from tensilica.ne.mediaone.net ([24.128.102.177]:27389 "EHLO alice.ma.tensilica.com") by oss.sgi.com with ESMTP id ; Tue, 16 May 2000 19:41:42 +0000 Received: (from rutt@localhost) by alice.ma.tensilica.com (8.9.3/8.9.3) id PAA19919; Tue, 16 May 2000 15:41:33 -0400 Date: Tue, 16 May 2000 15:41:33 -0400 Message-Id: <200005161941.PAA19919@alice.ma.tensilica.com> X-Authentication-Warning: alice.ma.tensilica.com: rutt set sender to rutt@alice.ma.tensilica.com using -f From: John Ruttenberg To: pro64-contrib@oss.sgi.com Subject: header dependences for the osprey builds Reply-to: rutt@tensilica.com Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing gcc/g++ has a makedepend feature not too different than SGI compilers'. It doesn't seem that this was used in the linux port. Has anyone looked at makeing it work? If not, I'll see if I can. From owner-pro64-contrib@oss.sgi.com Tue May 16 12:47:21 2000 Received: by oss.sgi.com id ; Tue, 16 May 2000 19:47:11 +0000 Received: from tensilica.ne.mediaone.net ([24.128.102.177]:35325 "EHLO alice.ma.tensilica.com") by oss.sgi.com with ESMTP id ; Tue, 16 May 2000 19:46:54 +0000 Received: (from rutt@localhost) by alice.ma.tensilica.com (8.9.3/8.9.3) id PAA19945; Tue, 16 May 2000 15:46:48 -0400 X-Authentication-Warning: alice.ma.tensilica.com: rutt set sender to rutt@alice.ma.tensilica.com using -f From: John Ruttenberg MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <14625.42408.680357.559826@alice.ma.tensilica.com> Date: Tue, 16 May 2000 15:46:48 -0400 (EDT) To: pro64-contrib@oss.sgi.com Subject: header dependences for the osprey builds In-Reply-To: <200005161941.PAA19919@alice.ma.tensilica.com> References: <200005161941.PAA19919@alice.ma.tensilica.com> X-Mailer: VM 6.75 under Emacs 20.5.1 Reply-to: rutt@tensilica.com Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing John Ruttenberg: > gcc/g++ has a makedepend feature not too different than SGI compilers'. > It doesn't seem that this was used in the linux port. Has anyone looked at > makeing it work? If not, I'll see if I can. Oops, I now see that this was done. Nevermind. From owner-pro64-contrib@oss.sgi.com Wed May 24 06:42:53 2000 Received: by oss.sgi.com id ; Wed, 24 May 2000 06:42:43 -0700 Received: from nwcst277.netaddress.usa.net ([204.68.23.22]:42463 "HELO convert =?ISO-8859-1?Q?rfc822-to-8bit.alcate=D1=03?= nwcst277.netaddress.usa.net") by oss.sgi.com with SMTP id ; Wed, 24 May 2000 06:42:41 -0700 Received: (qmail 2451 invoked by uid 60001); 24 May 2000 13:42:36 -0000 Message-ID: <20000524134236.2450.qmail@nwcst277.netaddress.usa.net> Received: from 204.68.23.22 by nwcst277 for [213.131.67.131] via web-mailer(34FM1.4.02C) on Wed May 24 13:42:36 GMT 2000 Date: 24 May 00 07:42:36 MDT From: To: pro64-support@oss.sgi.com Subject: X-Mailer: USANET web-mailer (34FM1.4.02C) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing hi there can one tell me under which license this software is distributed? thanks (please send a copy of your reply to my e-mail as i am not yet in the list) ____________________________________________________________________ Get free email and a permanent address at http://www.netaddress.com/?N=1 From owner-pro64-contrib@oss.sgi.com Wed May 31 17:50:48 2000 Received: by oss.sgi.com id ; Wed, 31 May 2000 17:50:28 -0700 Received: from int-mail.syd.fl.net.au ([202.181.0.28]:27140 "HELO int-mail.syd.fl.net.au") by oss.sgi.com with SMTP id ; Wed, 31 May 2000 17:50:03 -0700 Received: from lattice (idesign.fl.net.au [203.30.61.17]) by int-mail.syd.fl.net.au (Postfix) with SMTP for id E865016919; Thu, 1 Jun 2000 11:49:56 +1000 (EST) From: "Duraid Madina" To: Subject: The fastest way to multiply large integers Date: Thu, 1 Jun 2000 11:49:54 +1000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing What's the best way (for Itanium, at least) to multiply large integers? For example, 128 bit integers, 1024 bit integers or indeed arbitrarily large integers? I had a look through the Pro64 source and note that there is decreed a threshold of '14' below which successive shifts+adds are used, and above which you outright multiply. But when is it best to use the xma instruction (and the associated cost of converting to/from an FP representation)? When is it better to use the integer packed multiply instructions? For 'streaming multiplication', as it were, what do you think is the best way to proceed? Using the integer/MM units? The FP units? Both at once? I am concerned with 'normal' multiplication of ~kilobit numbers, not massive numbers where it's better to use transform-based multiplication. Any ideas? Many thanks for your time, Duraid From owner-pro64-contrib@oss.sgi.com Wed May 31 18:34:08 2000 Received: by oss.sgi.com id ; Wed, 31 May 2000 18:33:48 -0700 Received: from bothan.net ([206.251.2.42]:1555 "HELO bothawui.bothan.net") by oss.sgi.com with SMTP id ; Wed, 31 May 2000 18:33:39 -0700 Received: (qmail 9822 invoked by uid 1000); 1 Jun 2000 02:33:39 -0000 Date: Wed, 31 May 2000 19:33:39 -0700 (PDT) From: Drew Hess To: Duraid Madina cc: pro64-contrib@oss.sgi.com Subject: Re: The fastest way to multiply large integers In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-pro64-contrib@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;pro64-contrib-outgoing Hi Duraid, That's a pretty open-ended question, for which I don't have an answer, but this document may help you: http://developer.intel.com/design/ia-64/downloads/245473.htm It contains the Itanium instruction latencies (including getf, setf, xma, pmul, etc.) and dispersal rules to assist you in writing hand-coded routines. You might also want to ping the CERN folks, who have been working with IA-64 for a few years now on the IA-64 Linux port, though maybe most of their work has focused on FP math (dunno). Go to www.linuxia64.com. At the bottom of a page is an IA-64 tutorial by a CERN scientist, along with a reference to his home page. -dwh- On Thu, 1 Jun 2000, Duraid Madina wrote: > > What's the best way (for Itanium, at least) to multiply large integers? For > example, 128 bit integers, 1024 bit integers or indeed arbitrarily large > integers? > > I had a look through the Pro64 source and note that there is decreed a > threshold of '14' below which successive shifts+adds are used, and above > which you outright multiply. But when is it best to use the xma instruction > (and the associated cost of converting to/from an FP representation)? When > is it better to use the integer packed multiply instructions? For 'streaming > multiplication', as it were, what do you think is the best way to proceed? > Using the integer/MM units? The FP units? Both at once? > > I am concerned with 'normal' multiplication of ~kilobit numbers, not > massive numbers where it's better to use transform-based multiplication. > > Any ideas? > > Many thanks for your time, > > Duraid > >