caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Mark Shinwell <mshinwell@janestreet.com>
To: Alain Frisch <alain.frisch@lexifi.com>
Cc: "Gabriel Scherer" <gabriel.scherer@gmail.com>,
	"Yotam Barnoy" <yotambarnoy@gmail.com>,
	"Gerd Stolpmann" <info@gerd-stolpmann.de>,
	"Frédéric Bour" <frederic.bour@lakaban.net>,
	"Soegtrop, Michael" <michael.soegtrop@intel.com>,
	"Christoph Höger" <christoph.hoeger@tu-berlin.de>,
	"caml-list@inria.fr" <caml-list@inria.fr>
Subject: Re: [Caml-list] Closing the performance gap to C
Date: Thu, 22 Dec 2016 08:39:57 +0000	[thread overview]
Message-ID: <CAM3Ki76XJtwJa9WHE+QgZkW8stqRbPpN2moxR2-VxM17USqxzQ@mail.gmail.com> (raw)
In-Reply-To: <ba0a94e2-6306-85ac-4eeb-4abd0fbc2c78@lexifi.com>

I'm not sure I have an answer to that question at the moment---I
suggest taking this item to a smaller group for discussion.  I think
we've mooted the idea of trying to have some variant of Cmmgen that
did the Clambda to Cmm translation without doing e.g. the unboxing
part (which Flambda would already have done).  However, something like
that isn't entirely straightforward, as there are various Cmm -> Cmm
rewrites that are currently done by Cmmgen and we probably need to
preserve.  I'm pretty uncertain about how to treat those at the
moment; I think it would require some amount of experimentation.

Something tangentially related is that we should be able to get to the
stage fairly soon (within 2017 I think) where Flambda only generates
the subset of the Cmm language that is in SSA form.

It doesn't seem to me that keeping Clambda in the Flambda pipeline is
actually a bad thing; it forms quite a nice progression.  It would
however be nice to remove the Un_anf pass which is only there to
satisfy specific pattern-matches in the Cmmgen code, and slows down
compilation.

Mark

On 21 December 2016 at 17:43, Alain Frisch <alain.frisch@lexifi.com> wrote:
> On 21/12/2016 17:56, Mark Shinwell wrote:
>>
>> I agree with Gabriel, but, we are planning substantial work within
>> Flambda during the coming year to implement unboxing transformations
>> therein.  I do think we should spend a little time, before diving into
>> this particular issue, convincing ourselves that these two tracks of
>> work are going to be complementary rather than conflicting.
>
>
> Dealing with boxing/unboxing in flambda rather than keeping it at the cmm
> level certainly seems the way to go in the context of the flambda pipeline.
> This will probably need to touch the definition of clambda (to bring it
> closer to cmm) and thus cmmgen.  Do you believe this is compatible with
> continuing sharing clambda and cmmgen between the flambda and non-flambda
> pipeline?  At some point, it might be more natural, or just required, to
> compile flambda directly to cmm without going through clambda.  What do you
> think?
>
> If the flambda pipeline targets cmm directly without going through
> clambda/cmmgen, the approach discussed here (for the non-flambda case)
> should not interact too much with the flambda version.  As far as I can
> tell, they would mostly share the plumbing required to pass more info from
> typedtree to lambda.
>
>
> Alain

  reply	other threads:[~2016-12-22  8:40 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-17 13:01 Christoph Höger
2016-12-17 13:02 ` Christoph Höger
2016-12-19 10:58   ` Soegtrop, Michael
2016-12-19 11:51   ` Gerd Stolpmann
2016-12-19 14:52     ` Soegtrop, Michael
2016-12-19 16:41       ` Gerd Stolpmann
2016-12-19 17:09         ` Frédéric Bour
2016-12-19 17:19           ` Yotam Barnoy
2016-12-21 11:25             ` Alain Frisch
2016-12-21 14:45               ` Yotam Barnoy
2016-12-21 16:06                 ` Alain Frisch
2016-12-21 16:31                   ` Gerd Stolpmann
2016-12-21 16:39                     ` Yotam Barnoy
2016-12-21 16:47                       ` Gabriel Scherer
2016-12-21 16:51                         ` Yotam Barnoy
2016-12-21 16:56                         ` Mark Shinwell
2016-12-21 17:43                           ` Alain Frisch
2016-12-22  8:39                             ` Mark Shinwell [this message]
2016-12-22 17:23                             ` Pierre Chambart
2016-12-21 17:35                       ` Alain Frisch
2016-12-19 15:48     ` Ivan Gotovchits
2016-12-19 16:44       ` Yotam Barnoy
2016-12-19 16:59         ` Ivan Gotovchits
2016-12-21  9:08           ` Christoph Höger
2016-12-23 12:18             ` Oleg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAM3Ki76XJtwJa9WHE+QgZkW8stqRbPpN2moxR2-VxM17USqxzQ@mail.gmail.com \
    --to=mshinwell@janestreet.com \
    --cc=alain.frisch@lexifi.com \
    --cc=caml-list@inria.fr \
    --cc=christoph.hoeger@tu-berlin.de \
    --cc=frederic.bour@lakaban.net \
    --cc=gabriel.scherer@gmail.com \
    --cc=info@gerd-stolpmann.de \
    --cc=michael.soegtrop@intel.com \
    --cc=yotambarnoy@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).