[Soot-list] Error in Shimple
Marc-André Laverdière-Papineau
marc-andre.laverdiere-papineau at polymtl.ca
Wed Jun 26 08:36:24 EDT 2013
Hi Ishan,
Thanks for investigating the bugs. With your help, we may be able to get
a solid SSA implementation :)
Eric,
Do you know who has worked on the Shimple component in the past? Maybe
we could get their help again?
Marc-André Laverdière-Papineau
Doctorant - PhD Candidate
On 24/06/13 08:10 AM, Ishan Khot wrote:
> Hello Soot List,
> I tried to convert the following java code to extended shimple(SSI) and
> the program goes into an infinite loop.
>
> public class ShimpleTest {
>
> /**
> * @param args
> */
> public static void main(String[] args) {
> // TODO Auto-generated method stub
>
> int x = 100;
> boolean doIt = true;
>
> if(doIt){
> if(x < 200){
> x = 100;
> }
>
> else{
> x = 200;
> }
> }
>
> System.out.println(x);
> }
>
> }
>
> The options I used to run soot are :
> -cp . -pp -process-dir bin -d SootOutput -f shimple -p shimple extended:true
>
> I also did a little debugging on soot and found that the following piece
> of code is responsible for causing the infinite loop in the class
> ShimpleBodyBuilder
>
> public void transform()
> {
> phi.insertTrivialPhiNodes();
>
> boolean change = false;
> if(options.extended()){
> change = pi.insertTrivialPiNodes();
>
> while(change){
> if(phi.insertTrivialPhiNodes()){
> change = pi.insertTrivialPiNodes();
> }
> else{
> break;
> }
> }
> }
> .....
>
> The above while loop goes infinite with change = true and the
> phi.insertTrivialPhiNodes() method keeps on inserting the same phi node
> statement infinite times into a particular cfg block.
> It would be great if someone could help me in removing this bug.
>
> Thanks
>
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
More information about the Soot-list
mailing list