You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by tq...@apache.org on 2021/03/09 14:05:44 UTC
[tvm] branch main updated: Added MaybeAlign to CreateAtomicRMW
calls to fix build for LLVM13 (#7617)
This is an automated email from the ASF dual-hosted git repository.
tqchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new 8f9e5a4 Added MaybeAlign to CreateAtomicRMW calls to fix build for LLVM13 (#7617)
8f9e5a4 is described below
commit 8f9e5a48ec5887776b0c8d72401c926a13a81264
Author: LuukOddity <72...@users.noreply.github.com>
AuthorDate: Tue Mar 9 15:05:24 2021 +0100
Added MaybeAlign to CreateAtomicRMW calls to fix build for LLVM13 (#7617)
---
src/target/llvm/codegen_amdgpu.cc | 12 ++++++++++++
src/target/llvm/codegen_nvptx.cc | 12 ++++++++++++
2 files changed, 24 insertions(+)
diff --git a/src/target/llvm/codegen_amdgpu.cc b/src/target/llvm/codegen_amdgpu.cc
index 605870f..ca21892 100644
--- a/src/target/llvm/codegen_amdgpu.cc
+++ b/src/target/llvm/codegen_amdgpu.cc
@@ -190,14 +190,26 @@ class CodeGenAMDGPU : public CodeGenLLVM {
llvm::Value* v1 = MakeValue(op->args[1]);
if (op->args[1]->dtype.is_float()) {
#if TVM_LLVM_VERSION >= 90
+#if TVM_LLVM_VERSION >= 130
return builder_->CreateAtomicRMW(llvm::AtomicRMWInst::FAdd, v0, v1,
+ llvm::MaybeAlign::MaybeAlign(),
llvm::AtomicOrdering::Monotonic);
#else
+ return builder_->CreateAtomicRMW(llvm::AtomicRMWInst::FAdd, v0, v1,
+ llvm::AtomicOrdering::Monotonic);
+#endif
+#else
LOG(FATAL) << "Floating point atomic requires LLVM 9 or newer";
#endif
}
+#if TVM_LLVM_VERSION >= 130
return builder_->CreateAtomicRMW(llvm::AtomicRMWInst::Add, v0, v1,
+ llvm::MaybeAlign::MaybeAlign(),
llvm::AtomicOrdering::Monotonic);
+#else
+ return builder_->CreateAtomicRMW(llvm::AtomicRMWInst::Add, v0, v1,
+ llvm::AtomicOrdering::Monotonic);
+#endif
}
return CodeGenLLVM::CreateIntrinsic(op);
}
diff --git a/src/target/llvm/codegen_nvptx.cc b/src/target/llvm/codegen_nvptx.cc
index d8002a2..05d0178 100644
--- a/src/target/llvm/codegen_nvptx.cc
+++ b/src/target/llvm/codegen_nvptx.cc
@@ -238,14 +238,26 @@ llvm::Value* CodeGenNVPTX::CreateIntrinsic(const CallNode* op) {
llvm::Value* v1 = MakeValue(op->args[1]);
if (op->args[1]->dtype.is_float()) {
#if TVM_LLVM_VERSION >= 90
+#if TVM_LLVM_VERSION >= 130
return builder_->CreateAtomicRMW(llvm::AtomicRMWInst::FAdd, v0, v1,
+ llvm::MaybeAlign::MaybeAlign(),
llvm::AtomicOrdering::Monotonic);
#else
+ return builder_->CreateAtomicRMW(llvm::AtomicRMWInst::FAdd, v0, v1,
+ llvm::AtomicOrdering::Monotonic);
+#endif
+#else
LOG(FATAL) << "Floating point atomic requires LLVM 9 or newer";
#endif
}
+#if TVM_LLVM_VERSION >= 130
return builder_->CreateAtomicRMW(llvm::AtomicRMWInst::Add, v0, v1,
+ llvm::MaybeAlign::MaybeAlign(),
llvm::AtomicOrdering::Monotonic);
+#else
+ return builder_->CreateAtomicRMW(llvm::AtomicRMWInst::Add, v0, v1,
+ llvm::AtomicOrdering::Monotonic);
+#endif
}
return CodeGenLLVM::CreateIntrinsic(op);
}