Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!news.misty.com!news.iecc.com!.POSTED!nerds-end From: n.oje.bar@gmail.com Newsgroups: comp.compilers Subject: basic question about cps Date: Mon, 12 Nov 2012 11:05:49 -0800 (PST) Organization: Compilers Central Lines: 21 Sender: johnl@iecc.com Approved: comp.compilers@iecc.com Message-ID: <12-11-004@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: leila.iecc.com 1352755792 99818 64.57.183.58 (12 Nov 2012 21:29:52 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Mon, 12 Nov 2012 21:29:52 +0000 (UTC) Injection-Date: Mon, 12 Nov 2012 19:05:49 +0000 Keywords: analysis, question Posted-Date: 12 Nov 2012 16:29:52 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:775 Hi, I have a basic question about writing a compiler using continuation-passing style as an intermediate language. It seems to me that if one performs the cps transformation one is left with many 'computed' calls (that is call to variables holding procedure values, namely, the continuation). It seems that compiling such 'computed' calls would be much slower than compiling 'direct' calls to known procedures. Question: 1. Is this assumption valid? 2. If it is, then it seems that cps is not very useful without some non-trivial control flow analysis...?? Please excuse me if this question is very basic. Thanks! Nicolas [Yes, it assumes a reasonbly good optimizer. -John]