<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 21, 2016 at 11:26 AM, Vedant Kumar via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I haven't seen a failure yet, this is a latent issue.<br>
<br>
AFAICT mutable static variables are generally avoided in llvm. We use llvm::ManagedStatic with atomics or locking if absolutely necessary.<br>
<br>
Could you move this field into InstrProfWriter and InstrProfRecordTraits?<br></blockquote><div><br></div><div>The problem is that the trait's EmitData method (which references the variable) is a static method as well ..</div><div><br></div><div>David</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
vedant<br>
<div class="HOEnZb"><div class="h5"><br>
> On Jan 21, 2016, at 9:58 AM, Xinliang David Li <<a href="mailto:davidxl@google.com">davidxl@google.com</a>> wrote:<br>
><br>
> The setter call is invoked only in a unittest. Can you send me the<br>
> failure report? (currently InstrProfRecordTraits has no members and is<br>
> stateless).<br>
><br>
> thanks,<br>
><br>
> David<br>
><br>
> On Thu, Jan 21, 2016 at 1:17 AM, Vedant Kumar <<a href="mailto:vsk@apple.com">vsk@apple.com</a>> wrote:<br>
>> Hi David,<br>
>><br>
>>> namespace {<br>
>>> +static support::endianness ValueProfDataEndianness = support::little;<br>
>>> +// Internal interface for testing purpose only.<br>
>>> +void InstrProfWriter::setValueProfDataEndianness(<br>
>>> +    support::endianness Endianness) {<br>
>>> +  ValueProfDataEndianness = Endianness;<br>
>>> +}<br>
>><br>
>><br>
>> Please remove this static variable. It breaks clients who use llvm in a multi-threaded environment.<br>
>><br>
>> thanks<br>
>> vedant<br>
>><br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div></div>