<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt"><br><br><div class="gmail_quote">On Wed, Nov 28, 2012 at 8:26 AM, Kostya Serebryany <span dir="ltr"><<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:arial,helvetica,sans-serif;font-size:10pt"><br><br><div class="gmail_quote"><div class="im">On Tue, Nov 27, 2012 at 6:17 PM, Kostya Serebryany <span dir="ltr"><<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:arial,helvetica,sans-serif;font-size:10pt"><br><br><div class="gmail_quote"><div>On Mon, Nov 26, 2012 at 10:23 PM, Kostya Serebryany <span dir="ltr"><<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:arial,helvetica,sans-serif;font-size:10pt"><br><br><div class="gmail_quote"><div>On Mon, Nov 26, 2012 at 9:39 PM, Pedro Artigas <span dir="ltr"><<a href="mailto:partigas@apple.com" target="_blank">partigas@apple.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div>Hello All,<div><br></div><div><br></div><div>To summarize the thread and make sure everybody is on the same page I will repeat some information below.</div>



<div><br></div><div>- doInitialization and doFinalization are expected to be called before/after runOn???? for each pass on a given module, if more than one module exist in the compilation it will be called multiple times. No other assumption exists. (that is, for example, doFinalization may be called before or after runOn??? of other, unrelated, passes)</div>



<div><br></div><div>- ASAN violates this model and it is currently being fixed to split the part that does transformations on the module in doFinalization into a separate module pass (where the code to transform will be called in the run function on the module and, therefore, has proper ordering with other passes)</div>



</div></blockquote><div><br></div></div><div>I've implemented part of the fix in asan, hope to finish it this week. </div></div></div></blockquote><div><br></div></div><div>The rest of the fix is sent for review: </div>

<div>
<a href="http://llvm-reviews.chandlerc.com/D137" target="_blank">http://llvm-reviews.chandlerc.com/D137</a></div><div><a href="http://llvm-reviews.chandlerc.com/D138" target="_blank">http://llvm-reviews.chandlerc.com/D138</a></div>

</div></div></blockquote><div><br></div></div><div>Any objections against this change?</div><div>Pedro mentions a similar problem in tsan pass, but I want to resolve this one first. </div><div><br></div></div></div></blockquote>
<div><br></div><div>Done r168781 and 168782. </div><div>If the problem still exists with the tsan pass, let's discuss it in another thread. </div><div><br></div><div>--kcc </div><div> </div></div></div>