From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Nala Ginrut Newsgroups: gmane.lisp.guile.devel Subject: Re: CPS and RTL Date: Thu, 24 Jan 2013 18:38:49 +0800 Message-ID: References: <87libjhtk4.fsf@pobox.com> <878v7jnd5m.fsf@tines.lan> <878v7ij2bk.fsf@pobox.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7b670a218b593004d4066a14 X-Trace: ger.gmane.org 1359023942 6598 80.91.229.3 (24 Jan 2013 10:39:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 24 Jan 2013 10:39:02 +0000 (UTC) Cc: Mark H Weaver , guile-devel To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Jan 24 11:39:18 2013 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TyKDE-0000Hv-Kg for guile-devel@m.gmane.org; Thu, 24 Jan 2013 11:39:16 +0100 Original-Received: from localhost ([::1]:57269 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyKCx-00045t-CD for guile-devel@m.gmane.org; Thu, 24 Jan 2013 05:38:59 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:56470) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyKCs-00045L-8S for guile-devel@gnu.org; Thu, 24 Jan 2013 05:38:57 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TyKCp-0004ke-4A for guile-devel@gnu.org; Thu, 24 Jan 2013 05:38:54 -0500 Original-Received: from mail-ea0-f180.google.com ([209.85.215.180]:55773) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyKCo-0004kR-Ts for guile-devel@gnu.org; Thu, 24 Jan 2013 05:38:51 -0500 Original-Received: by mail-ea0-f180.google.com with SMTP id c1so3773577eaa.11 for ; Thu, 24 Jan 2013 02:38:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=ArWGhS+N48+e1kCTMRzYLTh2YymNpwbZxkOgJFFItHA=; b=BByYlb+A1R9yHsNV/Wtn167ovyoXXtsFf8zk4SVfq8WHF7FjIYm2+ZbE34pWohLuvm j3X7zSZbLPVE+5qnPfDUlA7ZIvJlvPViIOgbuy3++CHHhtRQs1aY28+yV6yJ3DClG8ro SXov1ZmiNWtA0cKw3fYwFrk5U4r3quULVlccT3VKsmUksKeQhh/7VWQDgRg2WfAZPV8L XWWRZWiysxU4w/T5VDcQN+awf71eXoGcuWr17/o3mlvsXNiGYJ3o9inDzQbi6kg2KAFX NsM2S+lCr7iZaDkefxuuT+xrVinVc0jK5mjqV5tdH+SW3wipw+J08IjsX8il4FK+/UsY GdrA== X-Received: by 10.14.224.8 with SMTP id w8mr5134594eep.18.1359023929251; Thu, 24 Jan 2013 02:38:49 -0800 (PST) Original-Received: by 10.223.102.131 with HTTP; Thu, 24 Jan 2013 02:38:49 -0800 (PST) Original-Received: by 10.223.102.131 with HTTP; Thu, 24 Jan 2013 02:38:49 -0800 (PST) In-Reply-To: <878v7ij2bk.fsf@pobox.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 209.85.215.180 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:15577 Archived-At: --047d7b670a218b593004d4066a14 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Are you guys going to use CSP to implement SSA for AOT? =E5=9C=A8 2013-1-24 PM6:36=EF=BC=8C"Andy Wingo" =E5=86=99= =E9=81=93=EF=BC=9A > Hi! > > On Thu 24 Jan 2013 10:28, Mark H Weaver writes: > > > The problem is that CPS fixes the order in which everything is > > evaluated, such as the order in which procedure arguments are > > evaluated, the order in which 'let' or 'letrec' initializers are > > evaluated, etc. The fact that these orders are unspecified in the > > direct-style gives the compiler freedom to choose an order that > > generates the best code, and apparently this freedom can often result > > in significant gains. Such ordering decisions must be made before the > > conversion to CPS. > > Agreed with the sentiment; however, two points: > > * we can have a CPS with let / letrec / * operators that bind a number > of values in unspecified order, and have a pass later that fixes > their order. > > * code motion passes like CSE depend on effects analysis, and can > often commute some operations > > Anyway, violent agreement! > > Cheers, > > Andy > -- > http://wingolog.org/ > > --047d7b670a218b593004d4066a14 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Are you guys going to use CSP to implement SSA for AOT?

=E5=9C=A8 2013-1-24 PM6:36=EF=BC=8C"Andy Wi= ngo" <wingo@pobox.com>=E5= =86=99=E9=81=93=EF=BC=9A
Hi!

On Thu 24 Jan 2013 10:28, Mark H Weaver <mhw@netris.org> writes:

> The problem is that CPS fixes the order in which everything is
> evaluated, such as the order in which procedure arguments are
> evaluated, the order in which 'let' or 'letrec' initia= lizers are
> evaluated, etc. =C2=A0The fact that these orders are unspecified in th= e
> direct-style gives the compiler freedom to choose an order that
> generates the best code, and apparently this freedom can often result<= br> > in significant gains. =C2=A0Such ordering decisions must be made befor= e the
> conversion to CPS.

Agreed with the sentiment; however, two points:

=C2=A0 * we can have a CPS with let / letrec / * operators that bind a numb= er
=C2=A0 =C2=A0 of values in unspecified order, and have a pass later that fi= xes
=C2=A0 =C2=A0 their order.

=C2=A0 * code motion passes like CSE depend on effects analysis, and can =C2=A0 =C2=A0 often commute some operations

Anyway, violent agreement!

Cheers,

Andy
--
http://wingolog.org/=

--047d7b670a218b593004d4066a14--