[llvm-commits] CVS: llvm/lib/Transforms/IPO/GlobalOpt.cpp
Lauro Ramos Venancio
lauro.venancio at gmail.com
Thu Apr 12 11:33:24 PDT 2007
Changes in directory llvm/lib/Transforms/IPO:
GlobalOpt.cpp updated: 1.100 -> 1.101
---
Log message:
Implement the "thread_local" keyword.
---
Diffs of the changes: (+19 -7)
GlobalOpt.cpp | 26 +++++++++++++++++++-------
1 files changed, 19 insertions(+), 7 deletions(-)
Index: llvm/lib/Transforms/IPO/GlobalOpt.cpp
diff -u llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.100 llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.101
--- llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.100 Thu Apr 5 16:09:42 2007
+++ llvm/lib/Transforms/IPO/GlobalOpt.cpp Thu Apr 12 13:32:50 2007
@@ -390,7 +390,9 @@
assert(In && "Couldn't get element of initializer?");
GlobalVariable *NGV = new GlobalVariable(STy->getElementType(i), false,
GlobalVariable::InternalLinkage,
- In, GV->getName()+"."+utostr(i));
+ In, GV->getName()+"."+utostr(i),
+ (Module *)NULL,
+ GV->isThreadLocal());
Globals.insert(GV, NGV);
NewGlobals.push_back(NGV);
}
@@ -413,7 +415,9 @@
GlobalVariable *NGV = new GlobalVariable(STy->getElementType(), false,
GlobalVariable::InternalLinkage,
- In, GV->getName()+"."+utostr(i));
+ In, GV->getName()+"."+utostr(i),
+ (Module *)NULL,
+ GV->isThreadLocal());
Globals.insert(GV, NGV);
NewGlobals.push_back(NGV);
}
@@ -699,7 +703,9 @@
Constant *Init = UndefValue::get(MI->getAllocatedType());
GlobalVariable *NewGV = new GlobalVariable(MI->getAllocatedType(), false,
GlobalValue::InternalLinkage, Init,
- GV->getName()+".body");
+ GV->getName()+".body",
+ (Module *)NULL,
+ GV->isThreadLocal());
GV->getParent()->getGlobalList().insert(GV, NewGV);
// Anything that used the malloc now uses the global directly.
@@ -714,7 +720,8 @@
// keep track of whether the global was initialized yet or not.
GlobalVariable *InitBool =
new GlobalVariable(Type::Int1Ty, false, GlobalValue::InternalLinkage,
- ConstantInt::getFalse(), GV->getName()+".init");
+ ConstantInt::getFalse(), GV->getName()+".init",
+ (Module *)NULL, GV->isThreadLocal());
bool InitBoolUsed = false;
// Loop over all uses of GV, processing them in turn.
@@ -943,7 +950,8 @@
GlobalVariable *NGV =
new GlobalVariable(PFieldTy, false, GlobalValue::InternalLinkage,
Constant::getNullValue(PFieldTy),
- GV->getName() + ".f" + utostr(FieldNo), GV);
+ GV->getName() + ".f" + utostr(FieldNo), GV,
+ GV->isThreadLocal());
FieldGlobals.push_back(NGV);
MallocInst *NMI = new MallocInst(FieldTy, MI->getArraySize(),
@@ -1145,7 +1153,9 @@
// Create the new global, initializing it to false.
GlobalVariable *NewGV = new GlobalVariable(Type::Int1Ty, false,
GlobalValue::InternalLinkage, ConstantInt::getFalse(),
- GV->getName()+".b");
+ GV->getName()+".b",
+ (Module *)NULL,
+ GV->isThreadLocal());
GV->getParent()->getGlobalList().insert(GV, NewGV);
Constant *InitVal = GV->getInitializer();
@@ -1519,7 +1529,9 @@
// Create the new global and insert it next to the existing list.
GlobalVariable *NGV = new GlobalVariable(CA->getType(), GCL->isConstant(),
- GCL->getLinkage(), CA);
+ GCL->getLinkage(), CA, "",
+ (Module *)NULL,
+ GCL->isThreadLocal());
GCL->getParent()->getGlobalList().insert(GCL, NGV);
NGV->takeName(GCL);
More information about the llvm-commits
mailing list