<div dir="ltr"><div>Hi,</div><div><br></div><div>The basic issue is that because of the conversion from stack code to three-address code and back, the original code doesn't exist anymore, and if you don't optimize it, you get very verbose bytecode. JVMs might do OK with it these days, I don't know. But it's going to be way larger than the original code. You can look at the CC'00 paper for details about that translation.</div><div><br></div><div>pat<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Oct 24, 2020 at 2:23 AM cl0und <<a href="mailto:cl0und@protonmail.com">cl0und@protonmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Hi, I found when exec `PackManager.v().runPacks()`, the soot.PackManager#runBodyPacks(soot.SootClass) method will be called and the code in this method<br></div><div>```code<br></div><div>CopyPropagator.v().transform(body);<br></div><div>ConditionalBranchFolder.v().transform(body);<br></div><div>UnreachableCodeEliminator.v().transform(body);<br></div><div>DeadAssignmentEliminator.v().transform(body);<br></div><div>UnusedLocalEliminator.v().transform(body);<br></div><div>```<br></div><div>will be forced to optimize jimple body, and I cannot bypass it. So, how can I turn off the forced optimization in soot?<br></div><div><br></div><div>By the way, the following configuration does not work when I set before exec `PackManager.v().runPacks()`<br></div><div>Options.v().setPhaseOption("jj.cp", "enabled:false"); // Copy propagator<br></div><div>Options.v().setPhaseOption("jj.cbf", "enabled:false"); // Conditional Branch Folder<br></div><div>Options.v().setPhaseOption("jj.uce", "enabled:false"); // Unreachable Code Eliminator<br></div><div>Options.v().setPhaseOption("jj.dae", "enabled:false"); // Dead Assignment Eliminator<br></div><div>Options.v().setPhaseOption("jb.cp", "enabled:false"); // Copy propagator<br></div><div>Options.v().setPhaseOption("jb.cbf", "enabled:false"); // Conditional Branch Folder<br></div><div>Options.v().setPhaseOption("jb.uce", "enabled:false"); // Unreachable Code Eliminator<br></div><div>Options.v().setPhaseOption("jb.dae", "enabled:false"); // Dead Assignment Eliminator<br></div><div><br></div><div>Thank you for taking the time.<br></div><div><br></div><div><br></div><div><div><br></div><div>Sent with <a href="https://protonmail.com" target="_blank">ProtonMail</a> Secure Email.<br></div></div><div><br></div>_______________________________________________<br>
Soot-list mailing list<br>
<a href="mailto:Soot-list@CS.McGill.CA" target="_blank">Soot-list@CS.McGill.CA</a><br>
<a href="https://mailman.CS.McGill.CA/mailman/listinfo/soot-list" rel="noreferrer" target="_blank">https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</a><br>
</blockquote></div>