diff options
author | Lauro Ramos Venancio <lauro.venancio@gmail.com> | 2007-04-12 18:32:50 +0000 |
---|---|---|
committer | Lauro Ramos Venancio <lauro.venancio@gmail.com> | 2007-04-12 18:32:50 +0000 |
commit | c763552299165b88d34a7d4f2d76ff413cbc7f67 (patch) | |
tree | bf83c987dadf556bcc766f071383969b0812058b /include/llvm/GlobalVariable.h | |
parent | 558385fd93a89a3f2186c5c76b6735cea32ac333 (diff) | |
download | llvm-c763552299165b88d34a7d4f2d76ff413cbc7f67.tar.gz llvm-c763552299165b88d34a7d4f2d76ff413cbc7f67.tar.bz2 llvm-c763552299165b88d34a7d4f2d76ff413cbc7f67.tar.xz |
Implement the "thread_local" keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35950 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/GlobalVariable.h')
-rw-r--r-- | include/llvm/GlobalVariable.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/llvm/GlobalVariable.h b/include/llvm/GlobalVariable.h index 3bf82492bc..6575dde34a 100644 --- a/include/llvm/GlobalVariable.h +++ b/include/llvm/GlobalVariable.h @@ -44,6 +44,7 @@ class GlobalVariable : public GlobalValue { void setPrev(GlobalVariable *N) { Prev = N; } bool isConstantGlobal; // Is this a global constant? + bool isThreadLocalSymbol; // Is this symbol "Thread Local"? Use Initializer; public: @@ -51,12 +52,12 @@ public: /// automatically inserted into the end of the specified modules global list. GlobalVariable(const Type *Ty, bool isConstant, LinkageTypes Linkage, Constant *Initializer = 0, const std::string &Name = "", - Module *Parent = 0); + Module *Parent = 0, bool ThreadLocal = false); /// GlobalVariable ctor - This creates a global and inserts it before the /// specified other global. GlobalVariable(const Type *Ty, bool isConstant, LinkageTypes Linkage, Constant *Initializer, const std::string &Name, - GlobalVariable *InsertBefore); + GlobalVariable *InsertBefore, bool ThreadLocal = false); /// isDeclaration - Is this global variable lacking an initializer? If so, /// the global variable is defined in some other translation unit, and is thus @@ -107,6 +108,10 @@ public: bool isConstant() const { return isConstantGlobal; } void setConstant(bool Value) { isConstantGlobal = Value; } + /// If the value is "Thread Local", its value isn't shared by the threads. + bool isThreadLocal() const { return isThreadLocalSymbol; } + void setThreadLocal(bool Value) { isThreadLocalSymbol = Value; } + /// removeFromParent - This method unlinks 'this' from the containing module, /// but does not delete it. /// |