Re: Decompiler, Expression Propagation, Intermediate Representation problems

Jeremy Singer <jsinger@cs.man.ac.uk>
Tue, 11 May 2010 10:11:35 +0100

          From comp.compilers

Related articles
Decompiler, Expression Propagation, Intermediate Representation proble r3831110n@gmail.com (Rebel Lion) (2010-05-09)
Re: Decompiler, Expression Propagation, Intermediate Representation pr jsinger@cs.man.ac.uk (Jeremy Singer) (2010-05-11)
Re: Decompiler, Expression Propagation, Intermediate Representation pr r3831110n@gmail.com (Rebel Lion) (2010-05-13)
| List of all articles for this month |

From: Jeremy Singer <jsinger@cs.man.ac.uk>
Newsgroups: comp.compilers
Date: Tue, 11 May 2010 10:11:35 +0100
Organization: University of Manchester
References: 10-05-038
Keywords: disassemble, analysis, bibliography
Posted-Date: 12 May 2010 00:55:55 EDT

> (1) Expression Propagation Problem


> c = a + b
> e = c + d
>
> they will be the following after expression propagation
>
> c = a + b
> e = a + b + d


Cristina Cifuentes [1] refers to this as the "forward substitution"
method. She restricts its application to temporary variables that are
defined then used only once. Cifuentes' thesis [2] has lots of
nitty-gritty detail.


Regards,
Jeremy




[1]


@article{cifuentes1995decompilation,
    title={Decompilation of binary programs},
    author={Cifuentes, C. and Gough, K.J.},
    journal={Software: Practice and Experience},
    volume={25},
    number={7},
    pages={811--829},
    year={1995},
    doi = "10.1002/spe.4380250706",
}




[2] C Cifuentes, Reverse Compilation Techniques, PhD thesis, Faculty of
Information Technology, Queensland University of Technology, July 1994.
ftp://ftp.it.uq.edu.au/pub/CSM/dcc/decompilation_thesis.ps.gz




>
> in a situation it's not safe:
>
> c = a + b
> e = c + d
> a = 1
> some_use(e) ; we must forbid the propagation of e = c+d since a = 1
> kills c = a + b so does e = c + d
>
> Now is the question: How to efficently/correctly implement this
> propagation? What's the analysis' name in theory?



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.