From: Matt Harren <matth@cs...> - 2005-08-25 15:27:22
> -----Original Message-----
> From: cil-users-admin@...
> [mailto:cil-users-admin@...] On Behalf Of
> Benjamin Ylvisaker
> Sent: Friday, August 19, 2005 7:32 PM
> To: cil-users@...
> Subject: [CIL users] SSA
> I'm very interested in SSA in CIL. I noticed in the mailing
> list archive that back in June there was a brief discussion
> of the not- quite-complete SSA code that comes with CIL, but
> there didn't seem to be any follow-up. Has anyone gotten SSA
> working in CIL? Matt suggested looking at ext/arithabs.ml,
> but I don't see any such file.
Sorry, that was my mistake. I didn't realize that arithabs wasn't being
packaged with the CIL distribution.
ext/ssa.ml doesn't do any rewriting of C code, and was designed to be
language-independent. Arithabs uses the ssa module on an abstracted form
of the program that will eventually be fed to an abstract interpreter. If
you wanted SSA in CIL, you'd have to generate cfginfo values for the code,
invoke ssa.ml, and then do the transformation based on the results. If
you do do this, send us a patch so that we can include it for other CIL
For each statement, ssa.ml takes as input the indices of variables that
could be modified, and the indices of variables that appear in the
right-hand side. (When writing through a pointer, the variables that
might be modified are all of those who have had their address taken,
unless you perform a better points-to analysis). Its output is new
indices that should be substituted to generate the SSA form (use
makeTempVar to create a new var for each index). If you'd like to see
code that uses ssa.ml, I can send you arithabs.
Get latest updates about Open Source Projects, Conferences and News.