<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Thank you very much for replying Dr. Eric, I think I did not elaborate my problem correctly.</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 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.</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 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.</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">if I can't figure it out, I'll disable these optimizations like you suggested. </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"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">--<div>MI</div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jan 19, 2019 at 9:44 AM Eric Bodden <<a href="mailto:eric.bodden@uni-paderborn.de">eric.bodden@uni-paderborn.de</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><div id="gmail-m_-7357381429076309722d_1547891078563" style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(31,73,125)"><p dir="ltr" style="margin-top:0px;margin-bottom:0px">Hi Ishaq.</p>
<br>
<p dir="ltr" style="margin-top:0px;margin-bottom:0px">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:0px;margin-bottom:0px">Cheers</p>
<p dir="ltr" style="margin-top:0px;margin-bottom:0px">Eric</p>
<br>
<div id="gmail-m_-7357381429076309722signature-x" style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(31,73,125)"><div>--<br>Sent from my mobile<br></div></div></div><div class="gmail-m_-7357381429076309722quoted_separate_body"></div><div id="gmail-m_-7357381429076309722quoted_header" style="clear:both"><hr style="border:none;height:1px;color:rgb(225,225,225);background-color:rgb(225,225,225)"><div style="border:none;padding:3pt 0cm 0cm"><span style="font-size:11pt;font-family:Calibri,Arial,Helvetica,sans-serif"><b>Von:</b> Ishaq <<a href="mailto:ishaq@ishaq.pk" target="_blank">ishaq@ishaq.pk</a>><br><b>Gesendet:</b> Freitag, 18. Januar 2019 17:39<br><b>An:</b> <a href="mailto:soot-list@cs.mcgill.ca" target="_blank">soot-list@cs.mcgill.ca</a><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="gmail-m_-7357381429076309722quoted_body">
<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-m_-7357381429076309722gmail_signature">
<div dir="ltr">--
<div>MI</div>
</div>
</div>
</div>
</div>
</div></div></blockquote></div>