From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Israelsson Tampe Newsgroups: gmane.lisp.guile.devel Subject: Re: wip-rtl return location Date: Fri, 3 Aug 2012 15:13:00 +0200 Message-ID: References: <87mx2dv02q.fsf@pobox.com> <501B376F.3060505@netris.org> <871ujotajy.fsf@pobox.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=e89a8f3ba10d943c0a04c65c491b X-Trace: dough.gmane.org 1343999591 10144 80.91.229.3 (3 Aug 2012 13:13:11 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 3 Aug 2012 13:13:11 +0000 (UTC) Cc: Mark H Weaver , guile-devel To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Aug 03 15:13:10 2012 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 1SxHgj-0005Yc-CO for guile-devel@m.gmane.org; Fri, 03 Aug 2012 15:13:09 +0200 Original-Received: from localhost ([::1]:47710 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SxHgi-0000j4-GY for guile-devel@m.gmane.org; Fri, 03 Aug 2012 09:13:08 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:53535) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SxHge-0000ig-N6 for guile-devel@gnu.org; Fri, 03 Aug 2012 09:13:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SxHgb-0005eN-H5 for guile-devel@gnu.org; Fri, 03 Aug 2012 09:13:04 -0400 Original-Received: from mail-yw0-f41.google.com ([209.85.213.41]:57647) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SxHgb-0005eJ-CV for guile-devel@gnu.org; Fri, 03 Aug 2012 09:13:01 -0400 Original-Received: by yhr47 with SMTP id 47so920691yhr.0 for ; Fri, 03 Aug 2012 06:13:01 -0700 (PDT) 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:content-type; bh=at6Qzmoa30NxVlB5rtye9Yd5dWoGIUiLXcxD3E7Wl4M=; b=dTT8U/G4CvbPB2Y6nSx/RdGNYZZJP+bAkpp7P0bgjesfVSYKEYBAt4dN961jT9tuka 8AQy1KRsGro3ERpu43wt1KrVQTgsm0uzznjZ0S3oQ4SyDXrom/ChSeabImeMSixbvwio rMi3P1eSjqAd9xMPNA9uyfe4XeIDrYiKinbbrXLpfEso+/7cvLTCHZ+wJe01EPkYsYct XuLBOmgb+JtujHaI3FJHTvL2L9VAfOK7fs7kSFoHnIa3Po1wP9VVUTnCQ4bnrmlD4m7r +43A2uUwKUVRKh02u6BbMOjiCbHXmby/pSMuWOkaEHq1cYiCUlGTgE6HYDoxFPaZkucg kOOg== Original-Received: by 10.50.157.196 with SMTP id wo4mr10803086igb.22.1343999580584; Fri, 03 Aug 2012 06:13:00 -0700 (PDT) Original-Received: by 10.50.41.196 with HTTP; Fri, 3 Aug 2012 06:13:00 -0700 (PDT) In-Reply-To: <871ujotajy.fsf@pobox.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.213.41 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:14772 Archived-At: --e89a8f3ba10d943c0a04c65c491b Content-Type: text/plain; charset=ISO-8859-1 > in the normal case you just have > assert-nargs-ee/locals which is very cheap, no? Sure it's not the slowest of instructions, but in the VM it's an extra jump and for the Native part it either bloats the code or one has to jump out to supporting code subs in the VM. Considering the other call overhead it's maybe a non issue but I think we should time current setup with a version where we grovel the callee information from the program datastructure. /Stefan On Fri, Aug 3, 2012 at 2:38 PM, Andy Wingo wrote: > On Fri 03 Aug 2012 13:54, Stefan Israelsson Tampe > writes: > > > A though: > > assert_nargs_ee > > reserve_locals > > assert_nargs_ee_locals > > bind_rest > > bind_kwargs > > > > Could we not implement this logic in the call instructions? > > This is a characteristic of the callee -- more work is needed if there > are optional/kw args, but in the normal case you just have > assert-nargs-ee/locals which is very cheap, no? > > Andy > -- > http://wingolog.org/ > --e89a8f3ba10d943c0a04c65c491b Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable > in the normal case you just have
> assert-nargs-ee/locals which is very cheap, no?

Sure it's n= ot the slowest of instructions, but in the VM it's an extra jump
and= for the Native part it either bloats the code or one has to jump out
to supporting code subs in the VM. Considering the other call overhead
i= t's maybe a non issue but I think we should time current setup with a v= ersion
where we grovel the callee information from the program datastruc= ture.

/Stefan

On Fri, Aug 3, 2012 at 2:38 P= M, Andy Wingo <wingo@pobox.com> wrote:
On Fri 03 Aug 2012 13:54, Stefan Israelsson Tampe <stefan.itampe@gmail.com> wri= tes:

> A though:
> assert_nargs_ee
> reserve_locals
> assert_nargs_ee_locals
> bind_rest
> bind_kwargs
>
> Could we not implement this logic in the call instructions?

This is a characteristic of the callee -- more work is needed if ther= e
are optional/kw args, but in the normal case you just have
assert-nargs-ee/locals which is very cheap, no?

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

--e89a8f3ba10d943c0a04c65c491b--