[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