From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p71F5CPJ031939 for ; Mon, 1 Aug 2011 17:05:13 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmcDAEbANk7RVdy2mGdsb2JhbABBmByNRoF3CBQBAQEBAQgJDQcUJYFAAQEBAQMSAiwBGxILAQMMBgULDQ0hIgERAQUBChIGExIQh06iXQqML4JUhF07iG0CAwaGPASSe4xMPINe X-IronPort-AV: E=Sophos;i="4.67,300,1309730400"; d="scan'208";a="104437446" Received: from mail-vx0-f182.google.com ([209.85.220.182]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 01 Aug 2011 17:05:07 +0200 Received: by vxg33 with SMTP id 33so8346987vxg.27 for ; Mon, 01 Aug 2011 08:05:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=+j8gYWYhWQse5S2mE/i3UakEGTEHongHe3Jm8UvaHcM=; b=DYUhdFYfWSfv+hkEVEKveCSvaKZIfy62Sa1kXBrtCxsnHF/r51p/IA608oQMeKzSdu jXigrh27efL67iZRm1Tx29nuJxiXX9FNhWoZStvZfvKBW/p4gNg+ZJ+Voof0sguNyDI+ 03qvH9fhVhB7CkGlXqJzW/9suU2cB2pt7U7T0= Received: by 10.52.188.6 with SMTP id fw6mr4136149vdc.528.1312211106103; Mon, 01 Aug 2011 08:05:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.52.161.8 with HTTP; Mon, 1 Aug 2011 08:04:46 -0700 (PDT) In-Reply-To: <93199F3B-E9CF-4D93-9B2B-BAAB03F4FC08@googlemail.com> References: <93199F3B-E9CF-4D93-9B2B-BAAB03F4FC08@googlemail.com> From: Gabriel Scherer Date: Mon, 1 Aug 2011 17:04:46 +0200 Message-ID: To: Benedikt Meurer Cc: caml-list@inria.fr, Marcell Fischbach Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id p71F5CPJ031939 Subject: Re: [Caml-list] Linear Scan Register Allocator for ocamlopt/ocamlnat This work is meant to make a compromise between generated code quality and compilation speed to have good performances in rapid prototyping/development scenario. Do you have more precise measurements on - the relative costs of the successive transformations during native compilation (including external linking etc.)? Which proportion of time is currently used for register allocation? - the performance cost of this new allocator in the generated code? I suppose the results may vary between different architectures (eg. x86 is probably more sensitive to good allocation decisions than x86_64). On Mon, Aug 1, 2011 at 4:53 PM, Benedikt Meurer wrote: > Hello, > > As mentioned earlier we have a student working on an implementation of the Linear Scan Register Allocator [1] for ocamlopt (and thereby ocamlnat). It took some time, but now there's a first working patch which looks promising. This work is done by Marcell Fischbach as part of his diploma thesis. The idea is to use the linear scan algorithm to drive the register allocation in the native top-level ocamlnat at some point, as suggested by Fabrice Le Fessant [2]. > > Marcell is now working to implement a proof-of-concept of an inline assembler for ocamlnat on i386 based on code from Alain Frisch an Fabrice Le Fessant. The result will also be contributed once ready, and will be used to effectively compare ocamlnat and the byte-code ocaml top-level. > > The linear scan implementation reuses as much of the existing ocamlopt functionality as possible, so additional maintenance overhead should be manageable. Comments and suggestions are welcome of course. Please keep Marcell CC'ed with any replies as he's not subscribed to the list. > > greets, > Benedikt > > > [1] http://portal.acm.org/citation.cfm?id=330250 > [2] http://caml.inria.fr/pub/ml-archives/caml-list/2010/11/a1b0ed0934ff51df4ac07c5e9da6e9d6.en.html > > > -- > Caml-list mailing list.  Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > >