Changes in directory llvm/lib/Bytecode/Reader:
Analyzer.cpp updated: 1.39 -> 1.40 Reader.cpp updated: 1.247 -> 1.248 --- Log message: Implement the "thread_local" keyword. --- Diffs of the changes: (+8 -5) Analyzer.cpp | 4 +++- Reader.cpp | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) Index: llvm/lib/Bytecode/Reader/Analyzer.cpp diff -u llvm/lib/Bytecode/Reader/Analyzer.cpp:1.39 llvm/lib/Bytecode/Reader/Analyzer.cpp:1.40 --- llvm/lib/Bytecode/Reader/Analyzer.cpp:1.39 Wed Feb 14 21:39:18 2007 +++ llvm/lib/Bytecode/Reader/Analyzer.cpp Thu Apr 12 13:32:50 2007 @@ -154,12 +154,14 @@ GlobalValue::LinkageTypes Linkage, GlobalValue::VisibilityTypes Visibility, unsigned SlotNum, - unsigned initSlot + unsigned initSlot, + bool isThreadLocal ) { if (os) { *os << " GV: " << ( initSlot == 0 ? "Uni" : "I" ) << "nitialized, " << ( isConstant? "Constant, " : "Variable, ") + << " Thread Local = " << ( isThreadLocal? "yes, " : "no, ") << " Linkage=" << Linkage << " Visibility="<< Visibility << " Type="; Index: llvm/lib/Bytecode/Reader/Reader.cpp diff -u llvm/lib/Bytecode/Reader/Reader.cpp:1.247 llvm/lib/Bytecode/Reader/Reader.cpp:1.248 --- llvm/lib/Bytecode/Reader/Reader.cpp:1.247 Mon Apr 9 15:28:40 2007 +++ llvm/lib/Bytecode/Reader/Reader.cpp Thu Apr 12 13:32:50 2007 @@ -1704,11 +1704,12 @@ unsigned VarType = read_vbr_uint(); while (VarType != Type::VoidTyID) { // List is terminated by Void // VarType Fields: bit0 = isConstant, bit1 = hasInitializer, bit2,3,4 = - // Linkage, bit4+ = slot# - unsigned SlotNo = VarType >> 5; + // Linkage, bit5 = isThreadLocal, bit6+ = slot# + unsigned SlotNo = VarType >> 6; unsigned LinkageID = (VarType >> 2) & 7; unsigned VisibilityID = 0; bool isConstant = VarType & 1; + bool isThreadLocal = (VarType >> 5) & 1; bool hasInitializer = (VarType & 2) != 0; unsigned Alignment = 0; unsigned GlobalSectionID = 0; @@ -1764,7 +1765,7 @@ // Create the global variable... GlobalVariable *GV = new GlobalVariable(ElTy, isConstant, Linkage, - 0, "", TheModule); + 0, "", TheModule, isThreadLocal); GV->setAlignment(Alignment); GV->setVisibility(Visibility); insertValue(GV, SlotNo, ModuleValues); @@ -1781,7 +1782,7 @@ // Notify handler about the global value. if (Handler) Handler->handleGlobalVariable(ElTy, isConstant, Linkage, Visibility, - SlotNo, initSlot); + SlotNo, initSlot, isThreadLocal); // Get next item VarType = read_vbr_uint(); _______________________________________________ llvm-commits mailing list [EMAIL PROTECTED] http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits