[Soot-list] jb.use-original-names option, local variables
Raghav Karol
raghav.karol at gmail.com
Wed Jul 5 19:05:19 EDT 2006
Hello *,
I have a question regarding the jb.use-original-names option. I've
implemented a flow-insensitive points-to analysis using soot with the Jimple
IR and the precision is affected by the jb.use-original-names option!
The reason became clear when I looked at a dump of the the SootMethods in
question (see method dumps) With jb.use-original-names:false, a distinct
local variable is used to temporary hold each new object. For
jb.use-original-names:true a local variable is shared.
Is it possible to use distinct local variables for each new object created
while still enjoying the benefit of original names?
Thanks in advance,
Raghav
Method Dumps
===========
jb.use-original-names:false
<aaaTestFiles.PointsToAnalysisTest: void testTwo()>
{
r0
z0
$r1 // Local used Temporaray Storing new Object
$r2 // "
$r3 // "
$r4 // "
r0 := @this: aaaTestFiles.PointsToAnalysisTest
z0 = 1
if z0 == 0 goto $r3 = new java.lang.Object
$r1 = new java.lang.Object
specialinvoke $r1.<java.lang.Object: void <init>()>()
r0.<aaaTestFiles.PointsToAnalysisTest : java.lang.Object lock1> = $r1
$r2 = new java.lang.Object
specialinvoke $r2.<java.lang.Object: void <init>()>()
r0.<aaaTestFiles.PointsToAnalysisTest : java.lang.Object lock2> = $r2
goto [?= return]
$r3 = new java.lang.Object
specialinvoke $r3.<java.lang.Object: void <init>()>()
r0.<aaaTestFiles.PointsToAnalysisTest : java.lang.Object lock1> = $r3
$r4 = new java.lang.Object
specialinvoke $r4.<java.lang.Object: void <init>()>()
r0.<aaaTestFiles.PointsToAnalysisTest : java.lang.Object lock2> = $r4
return
}
jb.use-original-names:true
<aaaTestFiles.PointsToAnalysisTest: void testTwo()>
{
this
param1
$r0 // Local shared for storing temporary object
this := @this: aaaTestFiles.PointsToAnalysisTest
param1 = 1
if param1 == 0 goto $r0 = new java.lang.Object
$r0 = new java.lang.Object
specialinvoke $r0.<java.lang.Object: void <init>()>()
this.<aaaTestFiles.PointsToAnalysisTest: java.lang.Object lock1> = $r0
$r0 = new java.lang.Object
specialinvoke $r0.<java.lang.Object: void <init>()>()
this.<aaaTestFiles.PointsToAnalysisTest: java.lang.Object lock2> = $r0
goto [?= return]
$r0 = new java.lang.Object
specialinvoke $r0.<java.lang.Object: void <init>()>()
this.<aaaTestFiles.PointsToAnalysisTest: java.lang.Object lock1> = $r0
$r0 = new java.lang.Object
specialinvoke $r0.<java.lang.Object: void <init>()>()
this.<aaaTestFiles.PointsToAnalysisTest: java.lang.Object lock2> = $r0
return
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20060705/43ef830c/attachment.htm
More information about the Soot-list
mailing list