From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id A799EBC48 for ; Sat, 9 Apr 2005 20:59:53 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j39Ixrtt020838 for ; Sat, 9 Apr 2005 20:59:53 +0200 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id UAA12665 for ; Sat, 9 Apr 2005 20:59:52 +0200 (MET DST) Received: from biscayne-one-station.mit.edu (BISCAYNE-ONE-STATION.MIT.EDU [18.7.7.80]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j39IxpZd020831 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sat, 9 Apr 2005 20:59:52 +0200 Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) by biscayne-one-station.mit.edu (8.12.4/8.9.2) with ESMTP id j39Ixo11021277 for ; Sat, 9 Apr 2005 14:59:50 -0400 (EDT) Received: from psi-phi.mit.edu (PSI-PHI.MIT.EDU [18.187.1.35]) (authenticated bits=56) (User authenticated as jfc@ATHENA.MIT.EDU) by outgoing.mit.edu (8.12.4/8.12.4) with ESMTP id j39Ixh0b013171 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Sat, 9 Apr 2005 14:59:44 -0400 (EDT) Received: (from jfc@localhost) by psi-phi.mit.edu (8.12.9) id j39Ixh44021630; Sat, 9 Apr 2005 14:59:43 -0400 Message-Id: <200504091859.j39Ixh44021630@psi-phi.mit.edu> To: caml-list@inria.fr Subject: 64 bit SPARC code generator updated for ocaml 3.08.3 Date: Sat, 09 Apr 2005 14:59:43 -0400 From: John Carr X-Scanned-By: MIMEDefang 2.42 X-Miltered: at concorde with ID 42582629.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 42582627.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 ocaml:01 stack:01 garbage:01 stack:01 asmrun:01 otherlibs:01 usr:01 dependencies:01 ocamlopt:01 patched:01 recognizes:01 aligned:01 ocamlopt:01 gcc:01 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.2 X-Spam-Level: I updated my patches for 64 bit SPARC code to work with ocaml 3.08.3: http://www.mit.edu/~jfc/ocaml-3.08.3-sparc64.tar.gz There are two changes from the 3.08.1 version: 1. The 64 bit startup code did not allocate a large enough stack frame, causing crashes in garbage collection in some programs due to register window saves overwriting of the zero word that terminates the chain of stack frames. If you want to fix this without upgrading, change 176 to 208 in the save statement at asmrun/sparc-sparc64.S line 319. 2. ocaml does not compile on Solaris because otherlibs/graph/.depend contains references to /usr/X11R6; the install script deletes these dependencies. As before: This only affects native code, ocamlopt. Although the patched ocaml recognizes other 64 bit SPARC operating systems, I only have access to Solaris 9. Floats are still boxed in 64 bit code but are properly aligned, potentially improving performance. Here are run times for three of the microbenchmarks we discussed on the list recently, from left to right lorentzian 200, sieve 10000000, sort 10000: lore siev sort ML 32 6.78 1.52 2.87 ML 64 7.41 1.18 2.72 C 32 2.81 1.93 2.54* C 64 2.92 3.50 ML 32 = ocamlopt 3.08.3 32 bit version with -march=v8 ML 64 = ocamlopt 3.08.3 64 bit version C 32 = Sun C++ 5.5 -xO3 -xarch=v8plus except * = gcc 3.3.2 C 64 = Sun C++ 5.5 -xO3 -xarch=v9