<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div class="">Hi.</div>
<div class=""><br class="">
</div>
<div class="">You probably want to run your transformer in the „jtp“ package. All bodies should be stable and optimised until „jtp“.</div>
<div class=""><br class="">
</div>
<div class="">Here you can find some reference about Soot's packages and phases: <a href="https://github.com/Sable/soot/wiki/Packs-and-phases-in-Soot" class="">
https://github.com/Sable/soot/wiki/Packs-and-phases-in-Soot</a></div>
<div>The PackManager class is responsible for managing packs and comes with some pre-eneabled ones: <a href="https://github.com/Sable/soot/blob/develop/src/main/java/soot/PackManager.java#L176" class="">https://github.com/Sable/soot/blob/develop/src/main/java/soot/PackManager.java#L176</a></div>
<div>You can use phase options to configure the different packages and phases: <a href="https://soot-build.cs.uni-paderborn.de/public/origin/develop/soot/soot-develop/options/soot_options.htm" class="">https://soot-build.cs.uni-paderborn.de/public/origin/develop/soot/soot-develop/options/soot_options.htm</a></div>
<div><br class="">
</div>
<div>Best,</div>
<div>Manuel</div>
<div><br class="">
<br class="">
<blockquote type="cite" class="">
<div class="">Am 21.01.2019 um 09:56 schrieb Eric Bodden <<a href="mailto:eric.bodden@uni-paderborn.de" class="">eric.bodden@uni-paderborn.de</a>>:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">Hi again.<br class="">
<br class="">
How are you inserting your transform right now? You need to stick it into the right pack to get the desired behavior.<br class="">
<br class="">
Cheers<br class="">
Eric<br class="">
<br class="">
<blockquote type="cite" class="">On 20. Jan 2019, at 01:30, Ishaq <<a href="mailto:ishaq@ishaq.pk" class="">ishaq@ishaq.pk</a>> wrote:<br class="">
<br class="">
Thank you very much for replying Dr. Eric, I think I did not elaborate my problem correctly.<br class="">
<br class="">
I do *not* want to disable this pack, (I want all optimizations). I just want my transformation pack to run at the very end so that it doesn't have stale information.<br class="">
<br class="">
I was hoping to some how define these optimizations packs as dependency of my analysis (e.g. similar to how we can define dependencies between LLVM passes), so that my code runs after these optimizations have taken place.<br class="">
<br class="">
if I can't figure it out, I'll disable these optimizations like you suggested. <br class="">
<br class="">
<br class="">
<br class="">
--<br class="">
MI<br class="">
<br class="">
<br class="">
On Sat, Jan 19, 2019 at 9:44 AM Eric Bodden <<a href="mailto:eric.bodden@uni-paderborn.de" class="">eric.bodden@uni-paderborn.de</a>> wrote:<br class="">
Hi Ishaq.<br class="">
<br class="">
You will need to identify the appropriate pack in Soot that applies this optimization and then disable it, through the appropriate options. To me this look like a constant propagator.<br class="">
<br class="">
Cheers<br class="">
Eric<br class="">
<br class="">
--<br class="">
Sent from my mobile<br class="">
Von: Ishaq <<a href="mailto:ishaq@ishaq.pk" class="">ishaq@ishaq.pk</a>><br class="">
Gesendet: Freitag, 18. Januar 2019 17:39<br class="">
An: <a href="mailto:soot-list@cs.mcgill.ca" class="">soot-list@cs.mcgill.ca</a><br class="">
Betreff: [Soot-list] how to make sure my internalTransform is executed at<span class="Apple-tab-span" style="white-space:pre">
</span>the very end <br class="">
<br class="">
Hello,<br class="">
<br class="">
My code essentially constructs def use chains (I store the Stmt/Unit objects in a map). However, once the internalTransform has finished running, some of them become null e.g. an IfStmt whose condition was "i23_1 >= 100", now looks has "0 >= 100" and it's target
 is now null.<br class="">
<br class="">
I am assuming this happens because Soot optimizes away the unnecessary variables (e.g. in the above case, it figured out that i23_1 was always going to be 0 and hence, there was no need for conditional jump).<br class="">
<br class="">
Problem is that I need my def-use chains to be constructed from the final optimized soot shimple so that it remains valid when I use it later.<br class="">
<br class="">
How do I ensure that my internalTransform is executed after Soot has made all its changes to the code?<br class="">
<br class="">
Thanks.<br class="">
--<br class="">
MI<br class="">
</blockquote>
<br class="">
_______________________________________________<br class="">
Soot-list mailing list<br class="">
<a href="mailto:Soot-list@CS.McGill.CA" class="">Soot-list@CS.McGill.CA</a><br class="">
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</body>
</html>