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);
 }