From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id D082F7FFA2 for ; Wed, 9 Mar 2016 04:55:12 +0100 (CET) IronPort-PHdr: 9a23:oNxhNxdUDN4Xfw8zk70jcz2xlGMj4u6mDksu8pMizoh2WeGdxc6yZR7h7PlgxGXEQZ/co6odzbGG7OawBCdeuN6oizMrTt9lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUiv2OQc9HOnpAIma153xjLDtvc2OKFsRzBOGIppMbzyO5T3LsccXhYYwYo0Q8TDu5kVyRuJN2GlzLkiSlRuvru25/Zpk7jgC86l5r50IeezAcq85Vb1VCig9eyBwvZWz9EqLcQzaz38VU2NevABJGAPFpEXzWp7wtG30rOtm0ymyOcDmTL41Hz+l6vE4ZgXvjXIiPiQ67Xqfr8tskKYT9BeovR9i2MjRZ52JMNJxe6rceZURQm8XDZUZbDBIHo7pN9hHNOEGJ+sN6tCl/1Y= Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=markus.mottl@gmail.com; spf=Pass smtp.mailfrom=markus.mottl@gmail.com; spf=None smtp.helo=postmaster@mail-ob0-f181.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of markus.mottl@gmail.com) identity=pra; client-ip=209.85.214.181; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="markus.mottl@gmail.com"; x-sender="markus.mottl@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of markus.mottl@gmail.com designates 209.85.214.181 as permitted sender) identity=mailfrom; client-ip=209.85.214.181; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="markus.mottl@gmail.com"; x-sender="markus.mottl@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ob0-f181.google.com) identity=helo; client-ip=209.85.214.181; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="markus.mottl@gmail.com"; x-sender="postmaster@mail-ob0-f181.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0B+AQDbnd9Wi7XWVdFcg1g0bQaoWpN3GYV2AoFDBzwQAQEBAQEBAQEQAQEBCAsLCR8xgi2CFQEBBBIRHQEUBx0BAwwGBQsNAgImAgIhAQERAQUBHAYTIodsAQMSoiGBMT4xizaBaoJXhUwKGScNUYN4AQEBAQEFAQEBAQEVAQUKBG2FHIRCgj2EfYE6BY4liQaBSooxgXWOe4cPhg0RHoEPN4IhHoFuHi6JfwEBAQ X-IPAS-Result: A0B+AQDbnd9Wi7XWVdFcg1g0bQaoWpN3GYV2AoFDBzwQAQEBAQEBAQEQAQEBCAsLCR8xgi2CFQEBBBIRHQEUBx0BAwwGBQsNAgImAgIhAQERAQUBHAYTIodsAQMSoiGBMT4xizaBaoJXhUwKGScNUYN4AQEBAQEFAQEBAQEVAQUKBG2FHIRCgj2EfYE6BY4liQaBSooxgXWOe4cPhg0RHoEPN4IhHoFuHi6JfwEBAQ X-IronPort-AV: E=Sophos;i="5.24,559,1454972400"; d="scan'208";a="167737079" Received: from mail-ob0-f181.google.com ([209.85.214.181]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 09 Mar 2016 04:55:11 +0100 Received: by mail-ob0-f181.google.com with SMTP id ts10so35051791obc.1 for ; Tue, 08 Mar 2016 19:55:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=8c7TrRhqQKAGEfXuGGgwC6Yi+hOLaXv1HKHcqBmFZG4=; b=GkoqU2de1FKh0/mdgnCZCIhrSjK/irj7ZSr7BRhydGOGUTMxI0W/1IOJvoJKKeFqzv 0r3MtM/4+gkO4l9oBcgDe9E6HRObm07+Bc/ptXR/Ac6ZuMaBSx+1adxAY7kRgqlVTRVN caw8zhgimhY8d+O/Fehs3P/1wzY8Ha0rqlgL/vn33GUrl1h+9EPk9VOUQbjaM68piqaM zFCWvlehe5DmRcypv9YAcJmF0uHxUBGEA3QkbMxtOBEIv+Ivh+HFhRYoivXsVVgmDmjT qyy0F+w0fNJJm+Rrjv6Y6Ng5jsSWwd7LsmzW0V41nUl9xtuIgc4rcgJQnAvjaRLzLcs3 mtzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=8c7TrRhqQKAGEfXuGGgwC6Yi+hOLaXv1HKHcqBmFZG4=; b=HePqf8aY8KQ2bFqa8kRiz+ut/8apk2kZ3RShkw11ukGTjjS/Q2iotAAq5c/q/DAkmW FrGZN7KbaeTNI5Eg/bGnOMnbhxE/hDHhOuqQ31S2rjdw5SrPjoKHDQFuSPBernRUc5tK sUFvtnzTIgc9bWg54A2ZgdZn8NShvFGFlULJ584gAAEW5UJwLlE4uWm1ynhS9O2c2QKj MAZ1XQ1HklK/Rujvcn2SwNzdj475/Dm+DMSBPTgYWHtcPjoaKT1WijkqYHLn0tKaYTDe An17IzN+ZtH77c29Brya9YEnsY08H2xVMgJ1brx51pTgaVEI8HM+YE2mEhg1XjNqRsg6 f2Ow== X-Gm-Message-State: AD7BkJLOEEdS0c7x3+cS+RUnFaQvFI8z0goj2aNtWtC+nqSxyKDYdE/Ji32lKS/cc9wg1JkhqB4kWXNJQ4WOBg== MIME-Version: 1.0 X-Received: by 10.182.81.197 with SMTP id c5mr19410355oby.7.1457495710117; Tue, 08 Mar 2016 19:55:10 -0800 (PST) Received: by 10.182.128.164 with HTTP; Tue, 8 Mar 2016 19:55:10 -0800 (PST) In-Reply-To: <56DF57FA.9070309@lexifi.com> References: <56DF57FA.9070309@lexifi.com> Date: Tue, 8 Mar 2016 22:55:10 -0500 Message-ID: From: Markus Mottl To: Alain Frisch Cc: OCaml List Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] Status of Flambda in OCaml 4.03 Hi Alain, I see, thanks. It was a little confusing, because the command line options for tuning flambda were still available even without Flambda being enabled. Will Flambda be enabled by default in OCaml 4.03 or is it still considered to be too experimental? It could turn out to become one of the most impactful new features in terms of how I write code. Regards, Markus On Tue, Mar 8, 2016 at 5:53 PM, Alain Frisch wrote: > Hi Markus, > > flambda needs to be enabled explicitly at configure time with the "-flambda" > flag. The new optimizer will then be used unconditionally, and you can > tweak it using command-line parameters passed to ocamlopt (see "ocamlopt > -h"). > > > Alain > > > On 08/03/2016 23:10, Markus Mottl wrote: >> >> Hi, >> >> I'm trying out OCaml 4.03.0+beta1 right now and wanted to test Flambda >> optimizations. But looking at the generated assembly, it doesn't seem >> to be doing much if anything on the simple test examples that I >> thought would benefit. >> >> To give an example of what I expected to see, lets consider this code: >> >> ----- >> let map_pair f (x, y) = f x, f y >> >> let succ x = x + 1 >> let map_pair_succ1 pair = map_pair succ pair >> let map_pair_succ2 (x, y) = succ x, succ y >> ----- >> >> I would have thought that the "succ" function would be inlined in >> "map_pair_succ1" as the compiler would do for "map_pair_succ2". >> But the generated code looks like this: >> >> ----- >> L101: >> movq %rax, %rdi >> movq %rdi, 8(%rsp) >> movq %rbx, (%rsp) >> movq 8(%rbx), %rax >> movq (%rdi), %rsi >> movq %rdi, %rbx >> call *%rsi >> L102: >> movq %rax, 16(%rsp) >> movq (%rsp), %rax >> movq (%rax), %rax >> movq 8(%rsp), %rbx >> movq (%rbx), %rdi >> call *%rdi >> ----- >> >> Is Flambda supposed to work out of the box with the current beta? >> What flags or annotations should I use for testing? Any showcase >> examples I should try out that are expected to be improved? >> >> Regards, >> Markus >> > -- Markus Mottl http://www.ocaml.info markus.mottl@gmail.com