<div class="socmaildefaultfont" dir="ltr" style="font-family:Arial, Helvetica, sans-serif;font-size:10.5pt" ><div dir="ltr" style="font-family:Arial, Helvetica, sans-serif;font-size:10.5pt" ><div dir="ltr" > </div>
<div dir="ltr" > </div>
<blockquote data-history-content-modified="1" data-history-expanded="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr; margin-right:0px" ><div dir="ltr" style="font-family:Arial, Helvetica, sans-serif;font-size:10.5pt" ><blockquote data-history-content-modified="1" data-history-expanded="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr; margin-right:0px" ><font size="2" face="Default Monospace,Courier New,Courier,monospace" >What is the long term plan for DSO_Default? Do we want to keep it or it</font>
<div><font size="2" face="Default Monospace,Courier New,Courier,monospace" >is just a helper in the transition and eventually every GV will be<br>DSO_Local or DSO_Preemptable?<br><br>> Index: include/llvm/IR/GlobalValue.h<br>> ===================================================================<br>> --- include/llvm/IR/GlobalValue.h<br>> +++ include/llvm/IR/GlobalValue.h<br>> @@ -73,20 +73,27 @@<br>>      DLLExportStorageClass = 2  ///< Function to be accessible from DLL.<br>>    };<br>>  <br>> +  enum DSO_Location {<br>> +    DSO_Default = 0,<br>> +    DSO_Local,<br>> +    DSO_Preemptable<br>> +  };</font><br> </div></blockquote>
<div dir="ltr" >I'm not sure what approach would be most useful. One of the issues I see with properly determining either local/preemptable during the parsing is that it depends on the compiler options and object file format. </div>
<div dir="ltr" > </div>
<div dir="ltr" >I could see using only the 2 values if I  assume a GlobalValue is preemptable unless either</div>
<div dir="ltr" >1) local was explicitly specified</div>
<div dir="ltr" >2) the Visibility prevents preemption</div>
<div dir="ltr" > </div>
<div dir="ltr" >Then the current shouldAssumeDSOLocal would continue to resolve exactly when a symbol is local or not for low-level codegen.</div></div></blockquote>
<div>I'd like to try to kick-start this discussion again.</div>
<div> </div>
<div>If we get rid of the default value does that mean we want to treat preemptable similar to how a GlobalValue is handled now (assume it is non-local in the IR, then let low level codegen figure it out)? Or is the goal to move the logic of 'TargetMachine::shouldAssumeDSOLocal' into the IR producers and then codegen can simply rely on dso_local/dso_preemptable with no additional checking? This option would need to break bitcode compatibility, is it still worth considering?</div>
<div> </div>
<div>In either case my 'default' behaviour can be rolled into DSO_Preemptable in the meantime, so I've removed DSO_Default.</div>
<div> </div>
<div> </div>
<div dir="ltr" >Thanks</div>
<div dir="ltr" >Sean</div>
<div dir="ltr" > </div>
<div dir="ltr" > </div></div></div><BR>