Extend the IL for selecting TLS models (PR9788)
This allows the user/front-end to specify a model that is better
than what LLVM would choose by default. For example, a variable
might be declared as
@x = thread_local(initialexec) global i32 42
if it will not be used in a shared library that is dlopen'ed.
If the specified model isn't supported by the target, or if LLVM can
make a better choice, a different model may be used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159077 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/docs/BitCodeFormat.html b/docs/BitCodeFormat.html
index 30145de..6a670f5 100644
--- a/docs/BitCodeFormat.html
+++ b/docs/BitCodeFormat.html
@@ -864,7 +864,7 @@
<h4><a name="MODULE_CODE_GLOBALVAR">MODULE_CODE_GLOBALVAR Record</a></h4>
<div>
-<p><tt>[GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal]</tt></p>
+<p><tt>[GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal, unnamed_addr]</tt></p>
<p>The <tt>GLOBALVAR</tt> record (code 7) marks the declaration or
definition of a global variable. The operand fields are:</p>
@@ -915,8 +915,16 @@
</ul>
</li>
-<li><i>threadlocal</i>: If present and non-zero, indicates that the variable
-is <tt>thread_local</tt></li>
+<li><i>threadlocal</i>: If present, an encoding of the thread local storage
+mode of the variable:
+ <ul>
+ <li><tt>not thread local</tt>: code 0</li>
+ <li><tt>thread local; default TLS model</tt>: code 1</li>
+ <li><tt>localdynamic</tt>: code 2</li>
+ <li><tt>initialexec</tt>: code 3</li>
+ <li><tt>localexec</tt>: code 4</li>
+ </ul>
+</li>
<li><i>unnamed_addr</i>: If present and non-zero, indicates that the variable
has <tt>unnamed_addr</tt></li>