From ce718ff9f42c7da092eaa01dd0242e8d5ba84713 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Sat, 23 Jun 2012 11:37:03 +0000 Subject: 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 --- docs/BitCodeFormat.html | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'docs/BitCodeFormat.html') 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 @@ library name referenced.

MODULE_CODE_GLOBALVAR Record

-

[GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal]

+

[GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal, unnamed_addr]

The GLOBALVAR record (code 7) marks the declaration or definition of a global variable. The operand fields are:

@@ -915,8 +915,16 @@ encoding of the visibility of this variable: -
  • threadlocal: If present and non-zero, indicates that the variable -is thread_local
  • +
  • threadlocal: If present, an encoding of the thread local storage +mode of the variable: +
      +
    • not thread local: code 0
    • +
    • thread local; default TLS model: code 1
    • +
    • localdynamic: code 2
    • +
    • initialexec: code 3
    • +
    • localexec: code 4
    • +
    +
  • unnamed_addr: If present and non-zero, indicates that the variable has unnamed_addr
  • -- cgit v1.1