Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED!nerds-end From: Florian Weimer Newsgroups: comp.compilers Subject: SSA conversion and closure conversion Date: Mon, 01 Jul 2013 21:36:26 +0200 Organization: Compilers Central Lines: 13 Sender: johnl@iecc.com Approved: comp.compilers@iecc.com Message-ID: <13-07-005@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: leila.iecc.com 1372905694 44425 64.57.183.58 (4 Jul 2013 02:41:34 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Thu, 4 Jul 2013 02:41:34 +0000 (UTC) Keywords: analysis, SSA, question Posted-Date: 03 Jul 2013 22:41:34 EDT 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:936 I'm trying to implement some program analysis (exact goals are still a bit foggy) for a programming language which has mutable local variables and closures. I want to convert things to SSA form because I'm mostly interested in properties which could be easily extracted in that representation, I think. I see three ways to deal with closed-over variables: perform closure conversion first (and something like scalar replacement later, to recover information on closed-over variables), perform SSA conversion and insert phi nodes after instructions which potentially call a closure, or somehow combine closure conversion and SSA conversion. Surely this has come up before, and I'm wondering which option is best or if I'm missing some approach.