Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/Target/LLVMIR')
-rw-r--r--mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp9
-rw-r--r--mlir/lib/Target/LLVMIR/ModuleTranslation.cpp5
2 files changed, 9 insertions, 5 deletions
diff --git a/mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp b/mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
index 2f866e10dd8a..bda695c35ddb 100644
--- a/mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
+++ b/mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
@@ -432,10 +432,11 @@ GlobalOp Importer::processGlobal(llvm::GlobalVariable *gv) {
alignment = align.value();
}
- GlobalOp op =
- b.create<GlobalOp>(UnknownLoc::get(context), type, gv->isConstant(),
- convertLinkageFromLLVM(gv->getLinkage()),
- gv->getName(), valueAttr, alignment);
+ GlobalOp op = b.create<GlobalOp>(
+ UnknownLoc::get(context), type, gv->isConstant(),
+ convertLinkageFromLLVM(gv->getLinkage()), gv->getName(), valueAttr,
+ alignment, /*addr_space=*/gv->getAddressSpace(),
+ /*dso_local=*/gv->isDSOLocal(), /*thread_local=*/gv->isThreadLocal());
if (gv->hasInitializer() && !valueAttr) {
Region &r = op.getInitializerRegion();
diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
index 953fb2461520..127e7e15ccab 100644
--- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
@@ -661,7 +661,10 @@ LogicalResult ModuleTranslation::convertGlobals() {
auto *var = new llvm::GlobalVariable(
*llvmModule, type, op.getConstant(), linkage, cst, op.getSymName(),
- /*InsertBefore=*/nullptr, llvm::GlobalValue::NotThreadLocal, addrSpace);
+ /*InsertBefore=*/nullptr,
+ op.getThreadLocal_() ? llvm::GlobalValue::GeneralDynamicTLSModel
+ : llvm::GlobalValue::NotThreadLocal,
+ addrSpace);
if (op.getUnnamedAddr().hasValue())
var->setUnnamedAddr(convertUnnamedAddrToLLVM(*op.getUnnamedAddr()));