[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CPS and RTL
From: |
Andy Wingo |
Subject: |
Re: CPS and RTL |
Date: |
Thu, 24 Jan 2013 11:35:43 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
Hi!
On Thu 24 Jan 2013 10:28, Mark H Weaver <address@hidden> 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/
- Re: CPS and RTL, Andy Wingo, 2013/01/24
- Re: CPS and RTL, Mark H Weaver, 2013/01/24
- Re: CPS and RTL,
Andy Wingo <=
- Re: CPS and RTL, Nala Ginrut, 2013/01/24
- Re: CPS and RTL, Andy Wingo, 2013/01/24
- Re: CPS and RTL, Noah Lavine, 2013/01/24
- Re: CPS and RTL, Andy Wingo, 2013/01/24
- Re: CPS and RTL, Noah Lavine, 2013/01/24
- Re: CPS and RTL, Noah Lavine, 2013/01/24