[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [PATCH] Mostly fix #1604
From: |
Peter Bex |
Subject: |
Re: [Chicken-hackers] [PATCH] Mostly fix #1604 |
Date: |
Wed, 29 May 2019 10:36:44 +0200 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
On Wed, May 29, 2019 at 10:39:54AM +0300, megane wrote:
> Consider the case (= a b c). If the C_and in the rewrite short-circuits
> then 'c' is never evaluated, right?
Ah, good observation. That might be a problem.
> Testing this indicates this is not an issue. Playing with gcc
> optimization flags didn't drop the evaluation of the 'c' node either.
I don't understand. If you do (= 1 2 (error "hi")), it should raise
the exception. Of course for "error" specifically it's not an issue
because "error" is not inlineable.
> I also tested that the lets in the rewrite can be dropped altogether.
> The arguments are bound to variables by the CPS conversion anyway.
> There's no duplicate evaluation.
How do you enforce that? If there's an inlineable call it doesn't
need to be bound to a variable. Something like (set! a 1) would be
inlineable.
> If you look at the output of -debug 5 you see that the next optimization
> iteration drops the 'let's generated by the rewrite.
You mean with the change you made?
Cheers,
Peter
signature.asc
Description: PGP signature
Re: [Chicken-hackers] [PATCH] Mostly fix #1604, felix . winkelmann, 2019/05/19
- Re: [Chicken-hackers] [PATCH] Mostly fix #1604, megane, 2019/05/19
- Re: [Chicken-hackers] [PATCH] Mostly fix #1604, Peter Bex, 2019/05/19
- Re: [Chicken-hackers] [PATCH] Mostly fix #1604, felix . winkelmann, 2019/05/20
- Re: [Chicken-hackers] [PATCH] Mostly fix #1604, Peter Bex, 2019/05/20
- Re: [Chicken-hackers] [PATCH] Mostly fix #1604, felix . winkelmann, 2019/05/20
- Re: [Chicken-hackers] [PATCH] Mostly fix #1604, Peter Bex, 2019/05/20
Re: [Chicken-hackers] [PATCH] Mostly fix #1604, felix . winkelmann, 2019/05/20