<html><body><style type="text/css">
<!--
div#d_1547891078563 p {font-family:Calibri, Arial, Helvetica, sans-serif; font-size:12.0pt; color:#1F497D}
-->
</style><div id='d_1547891078563' style="font-family:Calibri, Arial, Helvetica, sans-serif; font-size:12.0pt; color:#1F497D"><p dir="ltr" style="margin-top:0; margin-bottom:0;">Hi Ishaq.</p>
<br>
<p dir="ltr" style="margin-top:0; margin-bottom:0;">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.</p>
<br>
<p dir="ltr" style="margin-top:0; margin-bottom:0;">Cheers</p>
<p dir="ltr" style="margin-top:0; margin-bottom:0;">Eric</p>
<br>
<div id="signature-x" style="-webkit-user-select:none; font-family:Calibri, Arial, Helvetica, sans-serif; font-size:12.0pt; color:#1F497D"><html><head></head><body>--<br>Sent from my mobile<br></body></html></div></div><div class="quoted_separate_body"/><div id="quoted_header" style="clear:both;"><hr style="border:none; height:1px; color:#E1E1E1; background-color:#E1E1E1;"/><div style="border:none; padding:3.0pt 0cm 0cm 0cm"><span style="font-size:11.0pt;font-family:Calibri, Arial, Helvetica, sans-serif"><b>Von:</b> Ishaq <ishaq@ishaq.pk><br><b>Gesendet:</b> Freitag, 18. Januar 2019 17:39<br><b>An:</b> soot-list@cs.mcgill.ca<br><b>Betreff:</b> [Soot-list] how to make sure my internalTransform is executed at the very end <br></span></div></div><br type='attribution'><div id="quoted_body">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Hello,</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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).</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif">How do I ensure that my internalTransform is executed after Soot has made all its changes to the code?</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Thanks.</div>
<div>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">--
<div>MI</div>
</div>
</div>
</div>
</div>
</div></body></html>