From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 270FEBBAF for ; Sun, 5 Dec 2010 23:42:01 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuIBAH+k+0zLOwFqlGdsb2JhbACVHI4UFQEBAQEJCwgJEQMfvRKCFIM1BI4b X-IronPort-AV: E=Sophos;i="4.59,302,1288566000"; d="scan'208";a="82040613" Received: from outbound.icp-qv1-irony-out1.iinet.net.au ([203.59.1.106]) by mail4-smtp-sop.national.inria.fr with ESMTP; 05 Dec 2010 23:41:51 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlUFAI6j+0zLzuai/2dsb2JhbACVHI4Ucb0XghSDNQSOGw X-IronPort-AV: E=Sophos;i="4.59,302,1288540800"; d="scan'208";a="738012873" Received: from unknown (HELO hendrix.mega-nerd.net) ([203.206.230.162]) by outbound.icp-qv1-irony-out1.iinet.net.au with ESMTP; 06 Dec 2010 06:41:47 +0800 Received: from hendrix.mnn (hendrix.mnn [192.168.200.99]) by hendrix.mega-nerd.net (Postfix) with SMTP id 8314C106FAE for ; Mon, 6 Dec 2010 09:41:46 +1100 (EST) Date: Mon, 6 Dec 2010 09:41:45 +1100 From: Erik de Castro Lopo To: caml-list@inria.fr Subject: Re: ocamlopt LLVM support (Was: [Caml-list] OCamlJIT2 vs. OCamlJIT) Message-Id: <20101206094145.ac1e4a6e.mle+ocaml@mega-nerd.com> In-Reply-To: <004901cb94b8$c03abf80$40b03e80$@com> References: <3DCEA910-1382-47E5-876B-059178F8F82E@googlemail.com> <20101130124803.7952fca1@deb0> <0a8b01cb90da$da5e6240$8f1b26c0$@com> <5E2DA3F1-7998-4F62-B617-7B6451D1001D@googlemail.com> <0b3b01cb9161$a81c8e10$f855aa30$@com> <0b9301cb91a3$8f42fd60$adc8f820$@com> <0cae01cb9325$a8ddc3d0$fa994b70$@com> <004901cb94b8$c03abf80$40b03e80$@com> Reply-To: caml-list@inria.fr Organization: Erik Conspiracy Secret Labs X-Mailer: Sylpheed 3.0.2 (GTK+ 2.20.1; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; ocaml:01 ocamlopt:01 ocamlopt:01 compiler:01 vectors:01 matrices:01 hash:01 unboxed:01 wrote:01 ints:01 caml-list:01 tuples:01 int:01 measurements:01 data:02 Jon Harrop wrote: > My point was that HLVM's data representation is far more flexible than > ocamlopt's, Would you be able to list those differences for us? > In particular, I am saying that (from my own measurements) LLVM does not > cope with data representations like ocamlopt's at all well. Specifically, > when you box and cast away type information. Yes, thats obviously a mistake when generating typed assembly language like LLVM. > Ultimately, LLVM was built specifically to exploit a typed intermediate > representation whereas ocamlopt removes type information very early. That suggests that a first pass at adding an LLVM backend would be to extend the used of typed data representations through to the backend of the compiler. > And faster tuples, ints, chars, complex numbers, low-dimensional > vectors/matrices, hash tables and so on. More types (e.g. int16 and > float32). So specifically, you keep much more data in unboxed form? Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/